-
Notifications
You must be signed in to change notification settings - Fork 2
/
rexx.YAML-tmLanguage
34 lines (34 loc) · 1.56 KB
/
rexx.YAML-tmLanguage
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
# [PackageDev] target_format: plist, ext: tmLanguage
---
name: REXX
scopeName: source.rexx
fileTypes: [rexx,rex]
uuid: 1ebe3dbc-ae7f-413a-990f-c37fc1b0d204
firstLineMatch: /\*.*(?i:REXX)\b
foldingStartMarker: (/\*|\b(do|select)\b)
foldingStopMarker: (\*/|\bend\b)
patterns:
- name: comment.rexx # comment
begin: '/\*'
end: '\*/'
- name: constant.rexx # binary string
match: '([''"])[01 ]+\1(?i:b)'
- name: constant.rexx # hex string
match: '([''"])[0-9a-fA-F ]+\1(?i:x)'
- name: string.rexx # other string
begin: '([''"])'
end: '\1'
- name: entity.name.function.rexx # label
match: '\b[A-Za-z@#$!?_][A-Za-z@#$!?_0-9]*:'
- name: constant.numeric.rexx # number
match: '([0-9]+(\.)?[0-9]*(?i:e[-+]?[0-9]+)?|[0-9]*(\.)?[0-9]+)(?i:e[-+]?[0-9]+)?\b'
- name: constant.other.rexx # other constant
match: '[0-9\.][A-Za-z0-9@#$¢.!?_]*'
- name: keyword.operator.rexx # operator
match: '([\+-/*%&|()¬\\=<>~])'
- name: keyword.rexx # keyword
match: '\b(?i:do|forever|while|until|to|by|for|end|exit|if|then|else|iterate|leave|nop|return|select|when|otherwise|call(\s+(off|on)\s+(error|failure(\s+name)?|halt))?|signal(\s+(off|on)\s+(error|failure(\s+name)?|halt|novalue|syntax))|address\s+\w+|arg|drop|interpret|numeric\s+(digits|form(\s+(scientific|engineering|value))?|fuzz)|options|parse(\s+upper)?\s+(external|numeric|source|value|var|version)?|with|procedure(\s+expose)?|pull|push|queue|say|trace\s+\w+|upper)\b(?!\.)'
- name: support.function.rexx # function
match: '\b[A-Za-z@#$!?_0-9]+(?=\()'
- name: variable.rexx # variable
match: '\b[A-Za-z@#$¢!?_][A-Za-z0-9@#$¢.!?_]*'