github-linguist 7.7.0 → 7.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/hidden.manref.json +1 -1
  3. data/grammars/source.4dm.json +1029 -0
  4. data/grammars/source.agda.json +32 -202
  5. data/grammars/source.clarion.json +6 -6
  6. data/grammars/source.dircolors.json +101 -3
  7. data/grammars/source.editorconfig.json +23 -5
  8. data/grammars/source.elm.json +1 -1
  9. data/grammars/source.emacs.lisp.json +10 -0
  10. data/grammars/source.faust.json +119 -0
  11. data/grammars/source.gcode.json +170 -8
  12. data/grammars/source.hlsl.json +9 -5
  13. data/grammars/source.hx.json +4 -0
  14. data/grammars/source.igor.json +44 -0
  15. data/grammars/source.julia.json +8 -4
  16. data/grammars/source.mcfunction-snapshot.json +1 -1
  17. data/grammars/source.meson.json +1 -1
  18. data/grammars/source.odin-ehr.json +806 -0
  19. data/grammars/source.odin.json +402 -0
  20. data/grammars/source.p4.json +5 -21
  21. data/grammars/source.scala.json +27 -3
  22. data/grammars/source.sy.json +2088 -183
  23. data/grammars/source.terraform.json +576 -132
  24. data/grammars/source.ts.json +89 -30
  25. data/grammars/source.tsx.json +89 -30
  26. data/grammars/source.v.json +541 -788
  27. data/grammars/source.viml.json +2 -2
  28. data/grammars/source.webassembly.json +10 -0
  29. data/grammars/version +1 -1
  30. data/lib/linguist/VERSION +1 -1
  31. data/lib/linguist/generated.rb +10 -1
  32. data/lib/linguist/heuristics.yml +41 -3
  33. data/lib/linguist/languages.json +1 -1
  34. data/lib/linguist/languages.yml +117 -34
  35. data/lib/linguist/lazy_blob.rb +10 -10
  36. data/lib/linguist/linguist.bundle +0 -0
  37. data/lib/linguist/samples.json +6577 -1979
  38. data/lib/linguist/vendor.yml +3 -0
  39. metadata +6 -6
  40. data/grammars/source.LS.json +0 -85
  41. data/grammars/source.MCPOST.json +0 -54
  42. data/grammars/source.MOD.json +0 -55
  43. data/grammars/source.apt.json +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 127d0286b605eacb8a85a1d0f94ad6a7492e3842dec8839875e12d07d1575c24
4
- data.tar.gz: f74b2b6299773a445c1e5ed64429c2ecf20014b4f6100852a38ec5de8cfdb312
3
+ metadata.gz: 90dbfdaa3754cbf87f2a3b4b8cdf7f62bf8e408422176f0d75d4ef33fa848ba8
4
+ data.tar.gz: 6a2826a3ed40df5d5a6217bfa632816db748d5d6f583f296d68e2b4962b52bd2
5
5
  SHA512:
6
- metadata.gz: 3c6cfa0346aeef80b8903bc699e55c7ed0654547a4e2b1a208416c0c41f3fd326ba6b5b662771f5d2517eaac65e28183917bdb43f2c4b4c3aeab6b4dab6bdd17
7
- data.tar.gz: 958144eab81ef48c57328aa7a7b092177c46850b9e48c395b5e0db1fef5000cf4da120aa905893c6ef50df7f851b743b113938cae732568c282c7bd87ca44b37
6
+ metadata.gz: a254a4b16bafda16e0e509b414efe63cf68c4636893db43003fe95088bc1998e0822cc6c1cf6c604db5f18119822382a3e67ded9845c196eefc9deebd48ff56b
7
+ data.tar.gz: 651e0534da3c4f5381a2120582057c2ac12646e6f95c9f261e45cf6ea76b7708407ac69cb302e7a01b1d98b11211c53df1ca4140bbe47fe37dd482320edf8c74
@@ -3,7 +3,7 @@
3
3
  "patterns": [
4
4
  {
5
5
  "name": "manref",
6
- "match": "([^\\s()\u003c\u003e/\"'`{}!:\u0026*#?\\\\]+)((\\()([0-9])([^()\\s]*)(\\)))",
6
+ "match": "([^\\s()\u003c\u003e/\"'`{}!:\u0026*#?\\\\]+)((\\()([0-9])(?!\\.|(?\u003c=0)(?:[Xx][0-9A-Fa-f]+|[OoBb][0-9]+))([^()\\s]*)(\\)))",
7
7
  "captures": {
8
8
  "1": {
9
9
  "name": "manref.subject"
@@ -0,0 +1,1029 @@
1
+ {
2
+ "name": "4D",
3
+ "scopeName": "source.4dm",
4
+ "patterns": [
5
+ {
6
+ "include": "#comments"
7
+ },
8
+ {
9
+ "include": "#for_loop"
10
+ },
11
+ {
12
+ "include": "#keywords"
13
+ },
14
+ {
15
+ "include": "#parameters"
16
+ },
17
+ {
18
+ "include": "#affectation_variable"
19
+ },
20
+ {
21
+ "include": "#long_int_variable"
22
+ },
23
+ {
24
+ "include": "#real_variable"
25
+ },
26
+ {
27
+ "include": "#text_variable"
28
+ },
29
+ {
30
+ "include": "#boolean_variable"
31
+ },
32
+ {
33
+ "include": "#picture_variable"
34
+ },
35
+ {
36
+ "include": "#pointer_variable"
37
+ },
38
+ {
39
+ "include": "#object_variable"
40
+ },
41
+ {
42
+ "include": "#strings"
43
+ },
44
+ {
45
+ "include": "#interprocess_variable"
46
+ },
47
+ {
48
+ "include": "#local_variables"
49
+ },
50
+ {
51
+ "include": "#operators"
52
+ },
53
+ {
54
+ "include": "#boolean_values"
55
+ },
56
+ {
57
+ "include": "#constant_4d"
58
+ },
59
+ {
60
+ "include": "#numbers"
61
+ },
62
+ {
63
+ "include": "#block"
64
+ },
65
+ {
66
+ "include": "#table_reference"
67
+ },
68
+ {
69
+ "include": "#function-call-innards"
70
+ },
71
+ {
72
+ "name": "punctuation.terminator.statement.4d",
73
+ "match": "\\n"
74
+ },
75
+ {
76
+ "include": "#param_separator"
77
+ },
78
+ {
79
+ "name": "meta.bracket.square.access.4d",
80
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?\u003c=[\\]\\)]))?(\\[)(?!\\])",
81
+ "end": "\\]",
82
+ "patterns": [
83
+ {
84
+ "include": "#function-call-innards"
85
+ }
86
+ ],
87
+ "beginCaptures": {
88
+ "1": {
89
+ "name": "variable.object.4d"
90
+ },
91
+ "2": {
92
+ "name": "punctuation.definition.begin.bracket.square.4d"
93
+ }
94
+ },
95
+ "endCaptures": {
96
+ "0": {
97
+ "name": "punctuation.definition.end.bracket.square.4d"
98
+ }
99
+ }
100
+ },
101
+ {
102
+ "include": "#member_access"
103
+ },
104
+ {
105
+ "include": "#method_access"
106
+ }
107
+ ],
108
+ "repository": {
109
+ "affectation_variable": {
110
+ "name": "meta.block.affectation.4d",
111
+ "begin": "^((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(:=)",
112
+ "end": "(\\n)",
113
+ "patterns": [
114
+ {
115
+ "include": "#function-call-innards"
116
+ },
117
+ {
118
+ "include": "#member_access"
119
+ },
120
+ {
121
+ "include": "#method_access"
122
+ },
123
+ {
124
+ "include": "#local_variables"
125
+ },
126
+ {
127
+ "include": "#numbers"
128
+ },
129
+ {
130
+ "include": "#strings"
131
+ },
132
+ {
133
+ "include": "#interprocess_variable"
134
+ },
135
+ {
136
+ "name": "meta.probably_variable.4d",
137
+ "match": "(?i)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
138
+ }
139
+ ],
140
+ "beginCaptures": {
141
+ "1": {
142
+ "name": "variable.name.4d"
143
+ },
144
+ "2": {
145
+ "name": "keyword.operator.assignment.4d"
146
+ }
147
+ },
148
+ "endCaptures": {
149
+ "1": {
150
+ "name": "punctuation.section.end.affectaction.4d"
151
+ }
152
+ }
153
+ },
154
+ "block": {
155
+ "patterns": [
156
+ {
157
+ "name": "meta.block.4d",
158
+ "begin": "(?i)\\b(for each)\\b",
159
+ "end": "(?i)\\b(end for each)\\b",
160
+ "beginCaptures": {
161
+ "0": {
162
+ "name": "punctuation.section.block.begin.for_each.curly.4d"
163
+ }
164
+ },
165
+ "endCaptures": {
166
+ "0": {
167
+ "name": "punctuation.section.block.end.for_each.curly.4d"
168
+ }
169
+ }
170
+ }
171
+ ]
172
+ },
173
+ "boolean_values": {
174
+ "name": "constant.language.4d",
175
+ "match": "(?i)(NULL|true(\\:C214)?|false(\\:C215)?)"
176
+ },
177
+ "boolean_variable": {
178
+ "name": "storage.type.boolean.4d",
179
+ "begin": "(?i)(C_BOOLEAN(\\:C305)?)(\\()((?i)[\\$a-z_0-9 ]+)",
180
+ "end": "(\\))",
181
+ "patterns": [
182
+ {
183
+ "name": "variable.name.boolean.4d",
184
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
185
+ },
186
+ {
187
+ "include": "#param_separator"
188
+ }
189
+ ],
190
+ "beginCaptures": {
191
+ "1": {
192
+ "name": "storage.type.boolean.4d"
193
+ },
194
+ "2": {
195
+ "name": "meta.c_boolean.code.4d"
196
+ },
197
+ "3": {
198
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
199
+ },
200
+ "4": {
201
+ "name": "variable.name.boolean.4d"
202
+ }
203
+ },
204
+ "endCaptures": {
205
+ "1": {
206
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
207
+ }
208
+ }
209
+ },
210
+ "comments": {
211
+ "patterns": [
212
+ {
213
+ "name": "comment.line.double-slash.4d",
214
+ "begin": "\\s*+(\\/\\/)",
215
+ "end": "(?\u003c=\\n)(?\u003c!\\\\\\n)",
216
+ "patterns": [
217
+ {
218
+ "include": "#line_continuation_character"
219
+ }
220
+ ],
221
+ "beginCaptures": {
222
+ "1": {
223
+ "name": "punctuation.definition.comment.4d"
224
+ }
225
+ }
226
+ },
227
+ {
228
+ "name": "comment.block.4d",
229
+ "match": "^/\\** =(\\s*.*?)\\s*= \\**/$\\n?",
230
+ "captures": {
231
+ "1": {
232
+ "name": "meta.toc-list.banner.block.4d"
233
+ }
234
+ }
235
+ },
236
+ {
237
+ "name": "comment.block.4d",
238
+ "begin": "/\\**",
239
+ "end": "\\**/",
240
+ "beginCaptures": {
241
+ "0": {
242
+ "name": "punctuation.definition.comment.begin.4d"
243
+ }
244
+ },
245
+ "endCaptures": {
246
+ "0": {
247
+ "name": "punctuation.definition.comment.end.4d"
248
+ }
249
+ }
250
+ },
251
+ {
252
+ "name": "comment.line.banner.4d",
253
+ "match": "^//=(\\s*.*?)\\s*=\\s*$\\n?",
254
+ "captures": {
255
+ "1": {
256
+ "name": "meta.toc-list.banner.line.4d"
257
+ }
258
+ }
259
+ },
260
+ {
261
+ "begin": "(^[ \\t]+)?(?=//)",
262
+ "end": "(?!\\G)",
263
+ "patterns": [
264
+ {
265
+ "name": "comment.line.double-slash.4d",
266
+ "begin": "//",
267
+ "end": "(?=\\n)",
268
+ "patterns": [
269
+ {
270
+ "include": "#line_continuation_character"
271
+ }
272
+ ],
273
+ "beginCaptures": {
274
+ "0": {
275
+ "name": "punctuation.definition.comment.4d"
276
+ }
277
+ }
278
+ }
279
+ ],
280
+ "beginCaptures": {
281
+ "1": {
282
+ "name": "punctuation.whitespace.comment.leading.4d"
283
+ }
284
+ }
285
+ }
286
+ ]
287
+ },
288
+ "constant_4d": {
289
+ "name": "constant.numeric.4d",
290
+ "match": "(?i)([a-z_0-9 ]*)(\\:K[0-9]+)?(\\:[0-9]+)"
291
+ },
292
+ "for_loop": {
293
+ "name": "meta.block.loop.for.4d",
294
+ "begin": "^(?i)(for)\\((\\$[a-z]+);([0-9]+);([0-9]+)\\)",
295
+ "end": "(\\n)",
296
+ "beginCaptures": {
297
+ "1": {
298
+ "name": "keyword.control.4d"
299
+ },
300
+ "2": {
301
+ "name": "variable.name.4d"
302
+ },
303
+ "3": {
304
+ "name": "constant.range.begin.4d"
305
+ },
306
+ "4": {
307
+ "name": "constant.range.end.4d"
308
+ }
309
+ },
310
+ "endCaptures": {
311
+ "1": {
312
+ "name": "punctuation.section.end.for.4d"
313
+ }
314
+ }
315
+ },
316
+ "function-call-innards": {
317
+ "patterns": [
318
+ {
319
+ "include": "#comments"
320
+ },
321
+ {
322
+ "include": "#storage_types"
323
+ },
324
+ {
325
+ "include": "#operators"
326
+ },
327
+ {
328
+ "begin": "(?x)\n(?!\\s*\\()\n(\n(?:[A-Za-z_ ][A-Za-z0-9_]*+)++(\\:C[0-9]+)? # actual name\n|\n(?:(?\u003c=operator)(?:[-*\u0026\u003c\u003e=+#]+|\\(\\)))\n)\n\\s*(\\()",
329
+ "end": "\\)",
330
+ "patterns": [
331
+ {
332
+ "include": "#function-call-innards"
333
+ },
334
+ {
335
+ "include": "#strings"
336
+ },
337
+ {
338
+ "include": "#numbers"
339
+ },
340
+ {
341
+ "include": "#parameters"
342
+ },
343
+ {
344
+ "include": "#local_variables"
345
+ },
346
+ {
347
+ "include": "#boolean_values"
348
+ },
349
+ {
350
+ "include": "#constant_4d"
351
+ },
352
+ {
353
+ "include": "#param_separator"
354
+ },
355
+ {
356
+ "include": "#operators"
357
+ },
358
+ {
359
+ "include": "#member_access"
360
+ },
361
+ {
362
+ "include": "#table_reference"
363
+ }
364
+ ],
365
+ "beginCaptures": {
366
+ "1": {
367
+ "name": "entity.name.function.4d"
368
+ },
369
+ "2": {
370
+ "name": "entity.command.number.4d"
371
+ },
372
+ "3": {
373
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
374
+ }
375
+ },
376
+ "endCaptures": {
377
+ "0": {
378
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
379
+ }
380
+ }
381
+ },
382
+ {
383
+ "begin": "\\(",
384
+ "end": "\\)",
385
+ "patterns": [
386
+ {
387
+ "include": "#function-call-innards"
388
+ },
389
+ {
390
+ "include": "#member_access"
391
+ },
392
+ {
393
+ "include": "#table_reference"
394
+ }
395
+ ],
396
+ "beginCaptures": {
397
+ "0": {
398
+ "name": "punctuation.section.parens.begin.bracket.round.4d"
399
+ }
400
+ },
401
+ "endCaptures": {
402
+ "0": {
403
+ "name": "punctuation.section.parens.end.bracket.round.4d"
404
+ }
405
+ }
406
+ }
407
+ ]
408
+ },
409
+ "interprocess_variable": {
410
+ "name": "variable.interprocess.name.4d",
411
+ "match": "\u003c\u003e(?i)[a-z_0-9 ]+"
412
+ },
413
+ "keywords": {
414
+ "patterns": [
415
+ {
416
+ "name": "keyword.control.4d",
417
+ "match": "(?i)\\b(if|while|else|end if|end for|Begin SQL|End SQL|for each|End for each|while|end while|use|end use|case of|end case|repeat|until|for)\\b"
418
+ }
419
+ ]
420
+ },
421
+ "line_continuation_character": {
422
+ "patterns": [
423
+ {
424
+ "match": "(\\\\)\\n",
425
+ "captures": {
426
+ "1": {
427
+ "name": "constant.character.escape.line-continuation.c"
428
+ }
429
+ }
430
+ }
431
+ ]
432
+ },
433
+ "local_variables": {
434
+ "name": "variable.local.name.4d",
435
+ "match": "\\$[a-zA-Z_0-9 ]*"
436
+ },
437
+ "long_int_variable": {
438
+ "name": "storage.type.4d",
439
+ "begin": "(?i)(C_LONGINT(\\:C283)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
440
+ "end": "(\\))",
441
+ "patterns": [
442
+ {
443
+ "name": "variable.name.longint.4d",
444
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
445
+ },
446
+ {
447
+ "include": "#param_separator"
448
+ }
449
+ ],
450
+ "beginCaptures": {
451
+ "1": {
452
+ "name": "storage.type.longint.4d"
453
+ },
454
+ "2": {
455
+ "name": "meta.c_longint.code.4d"
456
+ },
457
+ "3": {
458
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
459
+ },
460
+ "4": {
461
+ "name": "variable.name.longint.4d"
462
+ }
463
+ },
464
+ "endCaptures": {
465
+ "1": {
466
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
467
+ }
468
+ }
469
+ },
470
+ "member_access": {
471
+ "match": "((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*(\\b[a-zA-Z_]\\w*\\b(?!\\())",
472
+ "captures": {
473
+ "1": {
474
+ "name": "variable.other.object.access.4d"
475
+ },
476
+ "2": {
477
+ "name": "entity.command.number.4d"
478
+ },
479
+ "3": {
480
+ "name": "punctuation.separator.dot-access.4d"
481
+ },
482
+ "4": {
483
+ "name": "punctuation.separator.pointer-access.4d"
484
+ },
485
+ "5": {
486
+ "patterns": [
487
+ {
488
+ "include": "#member_access"
489
+ },
490
+ {
491
+ "include": "#method_access"
492
+ },
493
+ {
494
+ "match": "((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))",
495
+ "captures": {
496
+ "1": {
497
+ "name": "variable.other.object.access.4d"
498
+ },
499
+ "2": {
500
+ "name": "punctuation.separator.dot-access.4d"
501
+ },
502
+ "3": {
503
+ "name": "punctuation.separator.pointer-access.4d"
504
+ }
505
+ }
506
+ }
507
+ ]
508
+ },
509
+ "6": {
510
+ "name": "variable.other.member.4d"
511
+ }
512
+ }
513
+ },
514
+ "method_access": {
515
+ "contentName": "meta.function-call.member.4d",
516
+ "begin": "((?:[a-zA-Z_\\s*]*(\\:C[0-9]+)?|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:-\u003e\\*|-\u003e)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
517
+ "end": "(\\))",
518
+ "patterns": [
519
+ {
520
+ "include": "#function-call-innards"
521
+ },
522
+ {
523
+ "include": "#table_reference"
524
+ }
525
+ ],
526
+ "beginCaptures": {
527
+ "1": {
528
+ "name": "variable.other.object.access.4d"
529
+ },
530
+ "2": {
531
+ "name": "entity.command.number.4d"
532
+ },
533
+ "3": {
534
+ "name": "punctuation.separator.dot-access.4d"
535
+ },
536
+ "4": {
537
+ "name": "punctuation.separator.pointer-access.4d"
538
+ },
539
+ "5": {
540
+ "patterns": [
541
+ {
542
+ "include": "#member_access"
543
+ },
544
+ {
545
+ "include": "#method_access"
546
+ },
547
+ {
548
+ "match": "((?:[a-zA-Z_]\\w*|(?\u003c=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:-\u003e\\*|-\u003e)))",
549
+ "captures": {
550
+ "1": {
551
+ "name": "variable.other.object.access.4d"
552
+ },
553
+ "2": {
554
+ "name": "punctuation.separator.dot-access.4d"
555
+ },
556
+ "3": {
557
+ "name": "punctuation.separator.pointer-access.4d"
558
+ }
559
+ }
560
+ }
561
+ ]
562
+ },
563
+ "6": {
564
+ "name": "entity.name.function.member.4d"
565
+ },
566
+ "7": {
567
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.4d"
568
+ }
569
+ },
570
+ "endCaptures": {
571
+ "1": {
572
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.4d"
573
+ }
574
+ }
575
+ },
576
+ "numbers": {
577
+ "begin": "(?\u003c!\\w)(?=\\d|\\.\\d)",
578
+ "end": "(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
579
+ "patterns": [
580
+ {
581
+ "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
582
+ "captures": {
583
+ "1": {
584
+ "name": "keyword.other.unit.hexadecimal.4d"
585
+ },
586
+ "10": {
587
+ "name": "keyword.operator.minus.exponent.hexadecimal.4d"
588
+ },
589
+ "11": {
590
+ "name": "constant.numeric.exponent.hexadecimal.4d",
591
+ "patterns": [
592
+ {
593
+ "name": "punctuation.separator.constant.numeric.4d",
594
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
595
+ }
596
+ ]
597
+ },
598
+ "12": {
599
+ "name": "keyword.other.unit.suffix.floating-point.4d"
600
+ },
601
+ "2": {
602
+ "name": "constant.numeric.hexadecimal.4d",
603
+ "patterns": [
604
+ {
605
+ "name": "punctuation.separator.constant.numeric.4d",
606
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
607
+ }
608
+ ]
609
+ },
610
+ "3": {
611
+ "name": "punctuation.separator.constant.numeric.4d"
612
+ },
613
+ "4": {
614
+ "name": "constant.numeric.hexadecimal.4d"
615
+ },
616
+ "5": {
617
+ "name": "constant.numeric.hexadecimal.4d",
618
+ "patterns": [
619
+ {
620
+ "name": "punctuation.separator.constant.numeric.4d",
621
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
622
+ }
623
+ ]
624
+ },
625
+ "6": {
626
+ "name": "punctuation.separator.constant.numeric.4d"
627
+ },
628
+ "8": {
629
+ "name": "keyword.other.unit.exponent.hexadecimal.4d"
630
+ },
631
+ "9": {
632
+ "name": "keyword.operator.plus.exponent.hexadecimal.4d"
633
+ }
634
+ }
635
+ },
636
+ {
637
+ "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?\u003c=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
638
+ "captures": {
639
+ "10": {
640
+ "name": "keyword.operator.minus.exponent.decimal.4d"
641
+ },
642
+ "11": {
643
+ "name": "constant.numeric.exponent.decimal.4d",
644
+ "patterns": [
645
+ {
646
+ "name": "punctuation.separator.constant.numeric.4d",
647
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
648
+ }
649
+ ]
650
+ },
651
+ "12": {
652
+ "name": "keyword.other.unit.suffix.floating-point.4d"
653
+ },
654
+ "2": {
655
+ "name": "constant.numeric.decimal.4d",
656
+ "patterns": [
657
+ {
658
+ "name": "punctuation.separator.constant.numeric.4d",
659
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
660
+ }
661
+ ]
662
+ },
663
+ "3": {
664
+ "name": "punctuation.separator.constant.numeric.4d"
665
+ },
666
+ "4": {
667
+ "name": "constant.numeric.decimal.point.4d"
668
+ },
669
+ "5": {
670
+ "name": "constant.numeric.decimal.4d",
671
+ "patterns": [
672
+ {
673
+ "name": "punctuation.separator.constant.numeric.4d",
674
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
675
+ }
676
+ ]
677
+ },
678
+ "6": {
679
+ "name": "punctuation.separator.constant.numeric.4d"
680
+ },
681
+ "8": {
682
+ "name": "keyword.other.unit.exponent.decimal.4d"
683
+ },
684
+ "9": {
685
+ "name": "keyword.operator.plus.exponent.decimal.4d"
686
+ }
687
+ }
688
+ },
689
+ {
690
+ "match": "(\\G0[bB])([01](?:[01]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
691
+ "captures": {
692
+ "1": {
693
+ "name": "keyword.other.unit.binary.4d"
694
+ },
695
+ "2": {
696
+ "name": "constant.numeric.binary.4d",
697
+ "patterns": [
698
+ {
699
+ "name": "punctuation.separator.constant.numeric.4d",
700
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
701
+ }
702
+ ]
703
+ },
704
+ "3": {
705
+ "name": "punctuation.separator.constant.numeric.4d"
706
+ },
707
+ "4": {
708
+ "name": "keyword.other.unit.suffix.integer.4d"
709
+ }
710
+ }
711
+ },
712
+ {
713
+ "match": "(\\G0)((?:[0-7]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
714
+ "captures": {
715
+ "1": {
716
+ "name": "keyword.other.unit.octal.4d"
717
+ },
718
+ "2": {
719
+ "name": "constant.numeric.octal.4d",
720
+ "patterns": [
721
+ {
722
+ "name": "punctuation.separator.constant.numeric.4d",
723
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
724
+ }
725
+ ]
726
+ },
727
+ "3": {
728
+ "name": "punctuation.separator.constant.numeric.4d"
729
+ },
730
+ "4": {
731
+ "name": "keyword.other.unit.suffix.integer.4d"
732
+ }
733
+ }
734
+ },
735
+ {
736
+ "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
737
+ "captures": {
738
+ "1": {
739
+ "name": "keyword.other.unit.hexadecimal.4d"
740
+ },
741
+ "2": {
742
+ "name": "constant.numeric.hexadecimal.4d",
743
+ "patterns": [
744
+ {
745
+ "name": "punctuation.separator.constant.numeric.4d",
746
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
747
+ }
748
+ ]
749
+ },
750
+ "3": {
751
+ "name": "punctuation.separator.constant.numeric.4d"
752
+ },
753
+ "5": {
754
+ "name": "keyword.other.unit.exponent.hexadecimal.4d"
755
+ },
756
+ "6": {
757
+ "name": "keyword.operator.plus.exponent.hexadecimal.4d"
758
+ },
759
+ "7": {
760
+ "name": "keyword.operator.minus.exponent.hexadecimal.4d"
761
+ },
762
+ "8": {
763
+ "name": "constant.numeric.exponent.hexadecimal.4d",
764
+ "patterns": [
765
+ {
766
+ "name": "punctuation.separator.constant.numeric.4d",
767
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
768
+ }
769
+ ]
770
+ },
771
+ "9": {
772
+ "name": "keyword.other.unit.suffix.integer.4d"
773
+ }
774
+ }
775
+ },
776
+ {
777
+ "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?\u003c!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?(?!(?:(?:[0-9a-zA-Z_\\.]|')|(?\u003c=[eEpP])[+-]))",
778
+ "captures": {
779
+ "2": {
780
+ "name": "constant.numeric.decimal.4d",
781
+ "patterns": [
782
+ {
783
+ "name": "punctuation.separator.constant.numeric.4d",
784
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
785
+ }
786
+ ]
787
+ },
788
+ "3": {
789
+ "name": "punctuation.separator.constant.numeric.4d"
790
+ },
791
+ "5": {
792
+ "name": "keyword.other.unit.exponent.decimal.4d"
793
+ },
794
+ "6": {
795
+ "name": "keyword.operator.plus.exponent.decimal.4d"
796
+ },
797
+ "7": {
798
+ "name": "keyword.operator.minus.exponent.decimal.4d"
799
+ },
800
+ "8": {
801
+ "name": "constant.numeric.exponent.decimal.4d",
802
+ "patterns": [
803
+ {
804
+ "name": "punctuation.separator.constant.numeric.4d",
805
+ "match": "(?\u003c=[0-9a-fA-F])'(?=[0-9a-fA-F])"
806
+ }
807
+ ]
808
+ },
809
+ "9": {
810
+ "name": "keyword.other.unit.suffix.integer.4d"
811
+ }
812
+ }
813
+ }
814
+ ]
815
+ },
816
+ "object_variable": {
817
+ "name": "storage.type.object.4d",
818
+ "begin": "(?i)(C_OBJECT(\\:C1216)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
819
+ "end": "(\\))",
820
+ "patterns": [
821
+ {
822
+ "name": "variable.name.object.4d",
823
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
824
+ },
825
+ {
826
+ "include": "#param_separator"
827
+ }
828
+ ],
829
+ "beginCaptures": {
830
+ "1": {
831
+ "name": "storage.type.object.4d"
832
+ },
833
+ "2": {
834
+ "name": "meta.c_object.code.4d"
835
+ },
836
+ "3": {
837
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
838
+ },
839
+ "4": {
840
+ "name": "variable.name.object.4d"
841
+ }
842
+ },
843
+ "endCaptures": {
844
+ "1": {
845
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
846
+ }
847
+ }
848
+ },
849
+ "operators": {
850
+ "patterns": [
851
+ {
852
+ "name": "keyword.operator.assignment.4d",
853
+ "match": ":="
854
+ },
855
+ {
856
+ "name": "keyword.operator.comparison.4d",
857
+ "match": "#|\u003c=|\u003e=|\u003c|\u003e|="
858
+ },
859
+ {
860
+ "name": "keyword.operator.4d",
861
+ "match": "%|\\*|/|-|\\+"
862
+ }
863
+ ]
864
+ },
865
+ "param_separator": {
866
+ "name": "punctuation.separator.delimiter.4d",
867
+ "match": ";"
868
+ },
869
+ "parameters": {
870
+ "name": "variable.parameter.4d",
871
+ "match": "\\$[0-9]"
872
+ },
873
+ "picture_variable": {
874
+ "name": "storage.type.picture.4d",
875
+ "begin": "(?i)(C_PICTURE(\\:C286)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
876
+ "end": "(\\))",
877
+ "patterns": [
878
+ {
879
+ "name": "variable.name.picture.4d",
880
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
881
+ },
882
+ {
883
+ "include": "#param_separator"
884
+ }
885
+ ],
886
+ "beginCaptures": {
887
+ "1": {
888
+ "name": "storage.type.picture.4d"
889
+ },
890
+ "2": {
891
+ "name": "meta.c_picture.code.4d"
892
+ },
893
+ "3": {
894
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
895
+ },
896
+ "4": {
897
+ "name": "variable.name.picture.4d"
898
+ }
899
+ },
900
+ "endCaptures": {
901
+ "1": {
902
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
903
+ }
904
+ }
905
+ },
906
+ "pointer_variable": {
907
+ "name": "storage.type.pointer.4d",
908
+ "begin": "(?i)(C_POINTER(\\:C301)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
909
+ "end": "(\\))",
910
+ "patterns": [
911
+ {
912
+ "name": "variable.name.pointer.4d",
913
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
914
+ },
915
+ {
916
+ "include": "#param_separator"
917
+ }
918
+ ],
919
+ "beginCaptures": {
920
+ "1": {
921
+ "name": "storage.type.pointer.4d"
922
+ },
923
+ "2": {
924
+ "name": "meta.c_pointer.code.4d"
925
+ },
926
+ "3": {
927
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
928
+ },
929
+ "4": {
930
+ "name": "variable.name.pointer.4d"
931
+ }
932
+ },
933
+ "endCaptures": {
934
+ "1": {
935
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
936
+ }
937
+ }
938
+ },
939
+ "real_variable": {
940
+ "name": "storage.type.real.4d",
941
+ "begin": "(?i)(C_REAL(\\:C285)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
942
+ "end": "(\\))",
943
+ "patterns": [
944
+ {
945
+ "name": "variable.name.real.4d",
946
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
947
+ },
948
+ {
949
+ "include": "#param_separator"
950
+ }
951
+ ],
952
+ "beginCaptures": {
953
+ "1": {
954
+ "name": "storage.type.real.4d"
955
+ },
956
+ "2": {
957
+ "name": "meta.c_real.code.4d"
958
+ },
959
+ "3": {
960
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
961
+ },
962
+ "4": {
963
+ "name": "variable.name.real.4d"
964
+ }
965
+ },
966
+ "endCaptures": {
967
+ "1": {
968
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
969
+ }
970
+ }
971
+ },
972
+ "strings": {
973
+ "name": "string.quoted.double.4d",
974
+ "begin": "\"",
975
+ "end": "\"",
976
+ "patterns": [
977
+ {
978
+ "name": "constant.character.escape.4d",
979
+ "match": "\\\\."
980
+ }
981
+ ]
982
+ },
983
+ "table_reference": {
984
+ "begin": "(?i)\\[((?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)(\\:[0-9]+)?",
985
+ "end": "\\]",
986
+ "beginCaptures": {
987
+ "1": {
988
+ "name": "support.table.name.4d"
989
+ },
990
+ "2": {
991
+ "name": "support.table.index.4d"
992
+ }
993
+ }
994
+ },
995
+ "text_variable": {
996
+ "name": "storage.type.text.4d",
997
+ "begin": "(?i)(C_TEXT(\\:C284)?)(\\()((?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*)",
998
+ "end": "(\\))",
999
+ "patterns": [
1000
+ {
1001
+ "name": "variable.name.text.4d",
1002
+ "match": "(?i)(?:\\$|\u003c\u003e|)(?:\\$|\u003c\u003e|)[a-z_0-9]+[a-z_0-9 ]*"
1003
+ },
1004
+ {
1005
+ "include": "#param_separator"
1006
+ }
1007
+ ],
1008
+ "beginCaptures": {
1009
+ "1": {
1010
+ "name": "storage.type.text.4d"
1011
+ },
1012
+ "2": {
1013
+ "name": "meta.c_text.code.4d"
1014
+ },
1015
+ "3": {
1016
+ "name": "punctuation.section.arguments.begin.bracket.round.4d"
1017
+ },
1018
+ "4": {
1019
+ "name": "variable.name.text.4d"
1020
+ }
1021
+ },
1022
+ "endCaptures": {
1023
+ "1": {
1024
+ "name": "punctuation.section.arguments.end.bracket.round.4d"
1025
+ }
1026
+ }
1027
+ }
1028
+ }
1029
+ }