Skip to content

Commit 0d4ce85

Browse files
author
Yury Selivanov
committed
Modularize regexp language
1 parent ae1d1b0 commit 0d4ce85

6 files changed

Lines changed: 607 additions & 600 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.PHONY: all test release
22

33
all:
4-
npm install syntaxdev@0.0.7
4+
npm install syntaxdev@0.0.8
55

66
test: release
77
# Run tests

grammars/MagicRegExp.YAML-tmLanguage

Lines changed: 4 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -7,151 +7,13 @@ uuid: 39e15186-71e6-11e5-b82c-7c6d62900c7c
77
author: Victor Petrovykh victor@magic.io
88

99
patterns:
10-
- include: '#expression'
10+
- include: '#regexp-expression'
1111

1212
repository:
1313
$apply:
14+
- file: 'regexp-common.inc.yaml'
1415
- file: 'regexp.inc.yaml'
16+
vars:
17+
prefix: ''
1518

16-
expression:
17-
patterns:
18-
- include: '#regexp-base-expression'
19-
- include: '#character-set'
20-
- include: '#comments'
21-
- include: '#regexp-flags'
22-
- include: '#named-group'
23-
- include: '#regexp-backreference'
24-
- include: '#lookahead'
25-
- include: '#lookahead-negative'
26-
- include: '#lookbehind'
27-
- include: '#lookbehind-negative'
28-
- include: '#conditional'
29-
- include: '#parentheses-non-capturing'
30-
- include: '#parentheses'
31-
32-
character-set:
33-
name: meta.character.set.regexp
34-
begin: (\[)(\^)?(\])?
35-
end: (\])
36-
beginCaptures:
37-
'1': {name: constant.other.set.regexp
38-
punctuation.character.set.begin.regexp}
39-
'2': {name: keyword.operator.negation.regexp}
40-
'3': {name: constant.character.set.regexp}
41-
endCaptures:
42-
'1': {name: constant.other.set.regexp
43-
punctuation.character.set.end.regexp}
44-
patterns:
45-
- include: '#regexp-charecter-set-escapes'
46-
- name: constant.character.set.regexp
47-
match: '[^\n]'
48-
49-
named-group:
50-
name: meta.named.regexp
51-
begin: |
52-
(?x)
53-
(\() (\?P <\w+(?:\s+[[:alnum:]]+)?>)
54-
end: \)
55-
beginCaptures:
56-
'1': {name: punctuation.parenthesis.named.begin.regexp
57-
support.other.parenthesis.regexp}
58-
'2': {name: entity.name.tag.named.group.regexp}
59-
endCaptures:
60-
'0': {name: punctuation.parenthesis.named.end.regexp
61-
support.other.parenthesis.regexp}
62-
patterns:
63-
- include: '#expression'
64-
65-
comments:
66-
name: comment.regexp
67-
begin: \(\?#
68-
end: \)
69-
beginCaptures:
70-
'0': {name: punctuation.comments.begin.regexp}
71-
endCaptures:
72-
'0': {name: punctuation.comments.end.regexp}
73-
74-
lookahead:
75-
begin: '(\()\?='
76-
end: \)
77-
beginCaptures:
78-
'0': {name: keyword.operator.lookahead.regexp}
79-
'1': {name: punctuation.parenthesis.lookahead.begin.regexp}
80-
endCaptures:
81-
'0': {name: punctuation.parenthesis.lookahead.end.regexp
82-
keyword.operator.lookahead.regexp}
83-
patterns:
84-
- include: '#expression'
85-
86-
lookahead-negative:
87-
begin: '(\()\?!'
88-
end: \)
89-
beginCaptures:
90-
'0': {name: keyword.operator.lookahead.negative.regexp}
91-
'1': {name: punctuation.parenthesis.lookahead.begin.regexp}
92-
endCaptures:
93-
'0': {name: punctuation.parenthesis.lookahead.end.regexp
94-
keyword.operator.lookahead.negative.regexp}
95-
patterns:
96-
- include: '#expression'
97-
98-
lookbehind:
99-
begin: '(\()\?<='
100-
end: \)
101-
beginCaptures:
102-
'0': {name: keyword.operator.lookbehind.regexp}
103-
'1': {name: punctuation.parenthesis.lookbehind.begin.regexp}
104-
endCaptures:
105-
'0': {name: punctuation.parenthesis.lookbehind.end.regexp
106-
keyword.operator.lookbehind.regexp}
107-
patterns:
108-
- include: '#expression'
109-
110-
lookbehind-negative:
111-
begin: '(\()\?<!'
112-
end: \)
113-
beginCaptures:
114-
'0': {name: keyword.operator.lookbehind.negative.regexp}
115-
'1': {name: punctuation.parenthesis.lookbehind.begin.regexp}
116-
endCaptures:
117-
'0': {name: punctuation.parenthesis.lookbehind.end.regexp
118-
keyword.operator.lookbehind.negative.regexp}
119-
patterns:
120-
- include: '#expression'
121-
122-
conditional:
123-
begin: '(\()\?\((\w+(?:\s+[[:alnum:]]+)?|\d+)\)'
124-
end: \)
125-
beginCaptures:
126-
'0': {name: keyword.operator.conditional.regexp}
127-
'1': {name: punctuation.parenthesis.conditional.begin.regexp}
128-
endCaptures:
129-
'0': {name: punctuation.parenthesis.conditional.end.regexp
130-
keyword.operator.conditional.negative.regexp}
131-
patterns:
132-
- include: '#expression'
133-
134-
parentheses-non-capturing:
135-
begin: '\(\?:'
136-
end: \)
137-
beginCaptures:
138-
'0': {name: punctuation.parenthesis.non-capturing.begin.regexp
139-
support.other.parenthesis.regexp}
140-
endCaptures:
141-
'0': {name: punctuation.parenthesis.non-capturing.end.regexp
142-
support.other.parenthesis.regexp}
143-
patterns:
144-
- include: '#expression'
145-
146-
parentheses:
147-
begin: \(
148-
end: \)
149-
beginCaptures:
150-
'0': {name: punctuation.parenthesis.begin.regexp
151-
support.other.parenthesis.regexp}
152-
endCaptures:
153-
'0': {name: punctuation.parenthesis.end.regexp
154-
support.other.parenthesis.regexp}
155-
patterns:
156-
- include: '#expression'
15719
...

0 commit comments

Comments
 (0)