Skip to content

Commit b943109

Browse files
committed
Add do grammar
1 parent c20cee1 commit b943109

File tree

4 files changed

+705
-1
lines changed

4 files changed

+705
-1
lines changed

DataWeave.YAML-tmLanguage

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ repository:
136136
- include: '#comments'
137137
- include: '#match-statement'
138138
- include: '#using-statement'
139+
- include: '#do-statement'
139140
- include: '#if-statement'
140141
- include: '#regex'
141142
- include: '#keywords'
@@ -241,7 +242,25 @@ repository:
241242
'1': {name: entity.name.variable.dw}
242243
'2': {name: keyword.operator.dw}
243244
- include: '#expressions'
244-
245+
246+
do-statement:
247+
name: do-statement.expr.dw
248+
begin: (?<!\.|\$)\b(do)\s*(\{)
249+
beginCaptures:
250+
'1': {name: keyword.control.do.dw}
251+
'2': {name: punctuation.definitions.begin.dw}
252+
end: (\})
253+
endCaptures:
254+
'1': {name: punctuation.definitions.end.dw}
255+
patterns:
256+
- include: '#comments'
257+
- include: '#directives'
258+
- match: (---)
259+
name: keyword.operator.body-marker.dw
260+
- include: '#expressions'
261+
- match: ([^\s]+)
262+
name: invalid
263+
245264
if-statement:
246265
name: meta.if.dw
247266
begin: (?<!\.|\$)\b(if\s*)\(

DataWeave.tmLanguage

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,10 @@
412412
<key>include</key>
413413
<string>#using-statement</string>
414414
</dict>
415+
<dict>
416+
<key>include</key>
417+
<string>#do-statement</string>
418+
</dict>
415419
<dict>
416420
<key>include</key>
417421
<string>#if-statement</string>
@@ -729,6 +733,63 @@
729733
</dict>
730734
</array>
731735
</dict>
736+
<key>do-statement</key>
737+
<dict>
738+
<key>name</key>
739+
<string>do-statement.expr.dw</string>
740+
<key>begin</key>
741+
<string>(?&lt;!\.|\$)\b(do)\s*(\{)</string>
742+
<key>beginCaptures</key>
743+
<dict>
744+
<key>1</key>
745+
<dict>
746+
<key>name</key>
747+
<string>keyword.control.do.dw</string>
748+
</dict>
749+
<key>2</key>
750+
<dict>
751+
<key>name</key>
752+
<string>punctuation.definitions.begin.dw</string>
753+
</dict>
754+
</dict>
755+
<key>end</key>
756+
<string>(\})</string>
757+
<key>endCaptures</key>
758+
<dict>
759+
<key>1</key>
760+
<dict>
761+
<key>name</key>
762+
<string>punctuation.definitions.end.dw</string>
763+
</dict>
764+
</dict>
765+
<key>patterns</key>
766+
<array>
767+
<dict>
768+
<key>include</key>
769+
<string>#comments</string>
770+
</dict>
771+
<dict>
772+
<key>include</key>
773+
<string>#directives</string>
774+
</dict>
775+
<dict>
776+
<key>match</key>
777+
<string>(---)</string>
778+
<key>name</key>
779+
<string>keyword.operator.body-marker.dw</string>
780+
</dict>
781+
<dict>
782+
<key>include</key>
783+
<string>#expressions</string>
784+
</dict>
785+
<dict>
786+
<key>match</key>
787+
<string>([^\s]+)</string>
788+
<key>name</key>
789+
<string>invalid</string>
790+
</dict>
791+
</array>
792+
</dict>
732793
<key>if-statement</key>
733794
<dict>
734795
<key>name</key>

0 commit comments

Comments
 (0)