firefly-compiler 0.5.63 → 0.5.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/compiler/Builder.ff +47 -31
  2. package/compiler/Compiler.ff +42 -47
  3. package/compiler/Dependencies.ff +9 -3
  4. package/compiler/Deriver.ff +2 -2
  5. package/compiler/Dictionaries.ff +11 -12
  6. package/compiler/Environment.ff +5 -5
  7. package/compiler/Inference.ff +1 -2
  8. package/compiler/JsEmitter.ff +34 -33
  9. package/compiler/Main.ff +32 -31
  10. package/compiler/ModuleCache.ff +17 -25
  11. package/compiler/Parser.ff +7 -11
  12. package/compiler/Resolver.ff +8 -11
  13. package/compiler/Syntax.ff +53 -17
  14. package/compiler/Unification.ff +2 -5
  15. package/core/BuildSystem.ff +1 -1
  16. package/core/Path.ff +11 -1
  17. package/core/SourceLocation.ff +4 -0
  18. package/experimental/foldertest/.firefly/package.ff +1 -0
  19. package/experimental/foldertest/Root.ff +10 -0
  20. package/experimental/foldertest/a/A.ff +3 -0
  21. package/experimental/foldertest/a/MainA.ff +3 -0
  22. package/experimental/tests/TestCancel.ff +19 -0
  23. package/fireflysite/CommunityOverview.ff +0 -2
  24. package/fireflysite/FrontPage.ff +0 -2
  25. package/fireflysite/Main.ff +1 -1
  26. package/fireflysite/PackagesOverview.ff +0 -2
  27. package/fireflysite/Router.ff +3 -3
  28. package/fireflysite/{ExamplesOverview.ff → demos/ExamplesOverview.ff} +3 -3
  29. package/fireflysite/{RouteFront.ff → routes/RouteFront.ff} +2 -3
  30. package/fireflysite/{RouteNonMarkdown.ff → routes/RouteNonMarkdown.ff} +5 -5
  31. package/fireflysite/{RouteReference.ff → routes/RouteReference.ff} +2 -3
  32. package/lsp/CompletionHandler.ff +2 -2
  33. package/lsp/Handler.ff +14 -13
  34. package/lsp/LanguageServer.ff +5 -4
  35. package/output/js/ff/compiler/Builder.mjs +118 -80
  36. package/output/js/ff/compiler/Compiler.mjs +85 -89
  37. package/output/js/ff/compiler/Dependencies.mjs +16 -10
  38. package/output/js/ff/compiler/Deriver.mjs +6 -6
  39. package/output/js/ff/compiler/Dictionaries.mjs +6 -6
  40. package/output/js/ff/compiler/Environment.mjs +10 -6
  41. package/output/js/ff/compiler/Inference.mjs +4 -4
  42. package/output/js/ff/compiler/JsEmitter.mjs +60 -38
  43. package/output/js/ff/compiler/Main.mjs +66 -56
  44. package/output/js/ff/compiler/ModuleCache.mjs +34 -38
  45. package/output/js/ff/compiler/Parser.mjs +14 -14
  46. package/output/js/ff/compiler/Resolver.mjs +12 -22
  47. package/output/js/ff/compiler/Substitution.mjs +2 -2
  48. package/output/js/ff/compiler/Syntax.mjs +395 -183
  49. package/output/js/ff/compiler/Unification.mjs +18 -32
  50. package/output/js/ff/core/BuildSystem.mjs +2 -6
  51. package/output/js/ff/core/Path.mjs +32 -0
  52. package/output/js/ff/core/SourceLocation.mjs +12 -0
  53. package/package.json +1 -1
  54. package/vscode/package.json +1 -1
  55. package/vscode/syntaxes/firefly.tmLanguage.json +299 -299
  56. package/fireflysite/ReferenceIntroduction.ff +0 -11
  57. /package/fireflysite/{CountingButtonDemo.ff → demos/CountingButtonDemo.ff} +0 -0
  58. /package/fireflysite/{MatchingPasswordsDemo.ff → demos/MatchingPasswordsDemo.ff} +0 -0
  59. /package/fireflysite/{PostgresqlDemo.ff → demos/PostgresqlDemo.ff} +0 -0
@@ -1,299 +1,299 @@
1
- {
2
- "name": "Firefly",
3
- "scopeName": "source.firefly",
4
- "fileTypes": [".ff"],
5
- "uuid": "4f8c685b-2623-4a57-9ef6-51445872c8d4",
6
- "patterns": [{"include": "#all"}],
7
- "repository": {
8
- "all": {"patterns": [
9
- {"include": "#comment"},
10
- {"include": "#char"},
11
- {"include": "#target-js"},
12
- {"include": "#target-js-singleline"},
13
- {"include": "#target-js-multiline"},
14
- {"include": "#string"},
15
- {"include": "#string-multiline"},
16
- {"include": "#number"},
17
- {"include": "#keyword"},
18
- {"include": "#spread"},
19
- {"include": "#dynamic-member"},
20
- {"include": "#field-or-call"},
21
- {"include": "#upper-dot"},
22
- {"include": "#upper"},
23
- {"include": "#lower"},
24
- {"include": "#ugly-colon"},
25
- {"include": "#ugly-comma"},
26
- {"include": "#ugly-arrow"},
27
- {"include": "#ugly-pipe"},
28
- {"include": "#ugly-round"},
29
- {"include": "#ugly-square"},
30
- {"include": "#ugly-curly"}
31
- ]},
32
- "keyword": {
33
- "name": "keyword.declaration.firefly",
34
- "match": "\\b(data|class|capability|import|from|dependency|package|include|extend|tailcall|function|let|mutable|firefly|trait|instance|newtype|private|safe|unsafe|trust|target)\\b(?=[ ]*[A-Za-z0-9\"'])"
35
- },
36
- "spread": {
37
- "name": "punctuation.spread.firefly",
38
- "match": "[.][.][.]"
39
- },
40
- "dynamic-member": {
41
- "name": "string.unquoted.firefly",
42
- "match": "(?<=[-][>][ ]*)[A-Za-z][A-Za-z0-9]*\\b"
43
- },
44
- "field-or-call": {
45
- "name": "entity.name.function.member.firefly",
46
- "match": "(?<=[^.][.}][ ]*)[a-z][A-Za-z0-9]*\\b|(?<!\\bextend[ \\t]+|@[ \\t]*|\\b[A-Z][A-Za-z0-9]+[ \\t]+)\\b[a-z][A-Za-z0-9]*(?=[ ]*[({\\[])"
47
- },
48
- "upper-dot": {
49
- "name": "entity.name.namespace.firefly",
50
- "match": "\\b[A-Z][A-Za-z0-9]*(?=[.])"
51
- },
52
- "upper": {
53
- "name": "entity.name.type.firefly",
54
- "match": "\\b[A-Z][A-Za-z0-9]*\\b"
55
- },
56
- "lower": {
57
- "name": "entity.name.variable.firefly",
58
- "match": "\\b[a-z_][A-Za-z0-9_]*\\b"
59
- },
60
- "char": {
61
- "name": "string.quoted.single.firefly",
62
- "begin": "'",
63
- "beginCaptures": {
64
- "0": {
65
- "name": "punctuation.definition.string.begin.firefly"
66
- }
67
- },
68
- "end": "(')|((?:[^\\\\\\n])$)",
69
- "endCaptures": {
70
- "1": {
71
- "name": "punctuation.definition.string.end.firefly"
72
- },
73
- "2": {
74
- "name": "invalid.illegal.newline.firefly"
75
- }
76
- },
77
- "patterns": [
78
- {
79
- "include": "#string-character-escape"
80
- }
81
- ]
82
- },
83
- "target-js": {
84
- "contentName": "meta.embedded.block.javascript",
85
- "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\")(?!\"\")",
86
- "beginCaptures": {
87
- "1": {
88
- "name": "keyword.declaration.firefly"
89
- },
90
- "2": {
91
- "name": "keyword.declaration.firefly"
92
- },
93
- "3": {
94
- "name": "punctuation.definition.string.begin.firefly"
95
- }
96
- },
97
- "end": "(\")|((?:[^\\\\\\n])$)",
98
- "endCaptures": {
99
- "1": {
100
- "name": "punctuation.definition.string.end.firefly"
101
- },
102
- "2": {
103
- "name": "invalid.illegal.newline.firefly"
104
- }
105
- },
106
- "patterns": [
107
- {
108
- "include": "#string-character-escape"
109
- }
110
- ]
111
- },
112
- "target-js-singleline": {
113
- "contentName": "meta.embedded.block.javascript",
114
- "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\"\"\")(?![ \t\r]*$)",
115
- "beginCaptures": {
116
- "1": {
117
- "name": "keyword.declaration.firefly"
118
- },
119
- "2": {
120
- "name": "keyword.declaration.firefly"
121
- },
122
- "3": {
123
- "name": "punctuation.definition.string.begin.firefly"
124
- }
125
- },
126
- "end": "\"\"\"(?!\")",
127
- "endCaptures": {
128
- "0": {
129
- "name": "punctuation.definition.string.end.firefly"
130
- }
131
- },
132
- "patterns": [
133
- {
134
- "include": "#string-character-escape"
135
- }
136
- ]
137
- },
138
- "target-js-multiline": {
139
- "contentName": "meta.embedded.block.javascript",
140
- "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\"\"\")",
141
- "beginCaptures": {
142
- "1": {
143
- "name": "keyword.declaration.firefly"
144
- },
145
- "2": {
146
- "name": "keyword.declaration.firefly"
147
- },
148
- "3": {
149
- "name": "punctuation.definition.string.begin.firefly"
150
- }
151
- },
152
- "end": "\"\"\"(?!\")",
153
- "endCaptures": {
154
- "0": {
155
- "name": "punctuation.definition.string.end.firefly"
156
- }
157
- },
158
- "patterns": [
159
- {
160
- "include": "#string-character-escape"
161
- },
162
- {
163
- "include": "source.js"
164
- }
165
- ]
166
- },
167
- "string": {
168
- "name": "string.quoted.double.firefly",
169
- "begin": "\"(?!\"\")",
170
- "beginCaptures": {
171
- "0": {
172
- "name": "punctuation.definition.string.begin.firefly"
173
- }
174
- },
175
- "end": "(\")|((?:[^\\\\\\n])$)",
176
- "endCaptures": {
177
- "1": {
178
- "name": "punctuation.definition.string.end.firefly"
179
- },
180
- "2": {
181
- "name": "invalid.illegal.newline.firefly"
182
- }
183
- },
184
- "patterns": [
185
- {
186
- "include": "#string-character-escape"
187
- }
188
- ]
189
- },
190
- "string-multiline": {
191
- "name": "string.quoted.multiline.firefly",
192
- "begin": "\"\"\"",
193
- "beginCaptures": {
194
- "0": {
195
- "name": "punctuation.definition.string.begin.firefly"
196
- }
197
- },
198
- "end": "\"\"\"(?!\")",
199
- "endCaptures": {
200
- "0": {
201
- "name": "punctuation.definition.string.end.firefly"
202
- }
203
- },
204
- "patterns": [
205
- {
206
- "include": "#string-character-escape"
207
- }
208
- ]
209
- },
210
- "string-character-escape": {
211
- "name": "constant.character.escape.firefly",
212
- "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
213
- },
214
- "number": {
215
- "patterns": [
216
- {
217
- "name": "constant.numeric.hex.firefly",
218
- "match": "\\b0(x|X)[0-9a-fA-F]+\\b"
219
- },
220
- {
221
- "name": "constant.numeric.binary.firefly",
222
- "match": "\\b0(b|B)[01]+\\b"
223
- },
224
- {
225
- "name": "constant.numeric.decimal.firefly",
226
- "match": "\\b[0-9]+([.][0-9]+)?([eE][+-]?[0-9]+)?\\b"
227
- }
228
- ]
229
- },
230
- "comment": {
231
- "patterns": [
232
- {
233
- "name": "comment.block.firefly",
234
- "begin": "/\\*",
235
- "beginCaptures": {
236
- "0": {
237
- "name": "punctuation.definition.comment.firefly"
238
- }
239
- },
240
- "end": "\\*/",
241
- "endCaptures": {
242
- "0": {
243
- "name": "punctuation.definition.comment.firefly"
244
- }
245
- }
246
- },
247
- {
248
- "begin": "(^[ \\t]+)?(?=//)",
249
- "beginCaptures": {
250
- "1": {
251
- "name": "punctuation.whitespace.comment.leading.firefly"
252
- }
253
- },
254
- "end": "(?=$)",
255
- "patterns": [
256
- {
257
- "name": "comment.line.double-slash.firefly",
258
- "begin": "//",
259
- "beginCaptures": {
260
- "0": {
261
- "name": "punctuation.definition.comment.firefly"
262
- }
263
- },
264
- "end": "(?=$)"
265
- }
266
- ]
267
- }
268
- ]
269
- },
270
- "ugly-colon": {
271
- "name": "invalid.ugly.colon.firefly",
272
- "match": "(?<=[ ])[:]"
273
- },
274
- "ugly-comma": {
275
- "name": "invalid.ugly.comma.firefly",
276
- "match": "(?<=[ ])[,]|[,](?![ ])"
277
- },
278
- "ugly-arrow": {
279
- "name": "invalid.ugly.arrow.firefly",
280
- "match": "(?<=[A-Za-z0-9])[=][>]|[=][>](?![ ]|$)"
281
- },
282
- "ugly-pipe": {
283
- "name": "invalid.ugly.pipe.firefly",
284
- "match": "(?<=[{][ ]+)[|]|[|](?![ |]|$)"
285
- },
286
- "ugly-round": {
287
- "name": "invalid.ugly.round.firefly",
288
- "match": "(?<=[A-Za-z0-9][ ]+)[(]|[(](?=[ ]+[^/])"
289
- },
290
- "ugly-square": {
291
- "name": "invalid.ugly.square.firefly",
292
- "match": "(?<=[A-Za-z0-9])[ ]+[\\[]|[\\[](?=[ ]+[^/])"
293
- },
294
- "ugly-curly": {
295
- "name": "invalid.ugly.curly.firefly",
296
- "match": "(?<=[A-Za-z0-9])[{]|[{](?=[ ]+[^/])|[}](?=[a-z])"
297
- }
298
- }
299
- }
1
+ {
2
+ "name": "Firefly",
3
+ "scopeName": "source.firefly",
4
+ "fileTypes": [".ff"],
5
+ "uuid": "4f8c685b-2623-4a57-9ef6-51445872c8d4",
6
+ "patterns": [{"include": "#all"}],
7
+ "repository": {
8
+ "all": {"patterns": [
9
+ {"include": "#comment"},
10
+ {"include": "#char"},
11
+ {"include": "#target-js"},
12
+ {"include": "#target-js-singleline"},
13
+ {"include": "#target-js-multiline"},
14
+ {"include": "#string"},
15
+ {"include": "#string-multiline"},
16
+ {"include": "#number"},
17
+ {"include": "#keyword"},
18
+ {"include": "#spread"},
19
+ {"include": "#dynamic-member"},
20
+ {"include": "#field-or-call"},
21
+ {"include": "#upper-dot"},
22
+ {"include": "#upper"},
23
+ {"include": "#lower"},
24
+ {"include": "#ugly-colon"},
25
+ {"include": "#ugly-comma"},
26
+ {"include": "#ugly-arrow"},
27
+ {"include": "#ugly-pipe"},
28
+ {"include": "#ugly-round"},
29
+ {"include": "#ugly-square"},
30
+ {"include": "#ugly-curly"}
31
+ ]},
32
+ "keyword": {
33
+ "name": "keyword.declaration.firefly",
34
+ "match": "\\b(data|class|capability|import|from|dependency|package|include|extend|tailcall|function|let|mutable|firefly|trait|instance|newtype|private|safe|unsafe|trust|target)\\b(?=[ ]*[A-Za-z0-9\"'])"
35
+ },
36
+ "spread": {
37
+ "name": "punctuation.spread.firefly",
38
+ "match": "[.][.][.]"
39
+ },
40
+ "dynamic-member": {
41
+ "name": "string.unquoted.firefly",
42
+ "match": "(?<=[-][>][ ]*)[A-Za-z][A-Za-z0-9]*\\b"
43
+ },
44
+ "field-or-call": {
45
+ "name": "entity.name.function.member.firefly",
46
+ "match": "(?<=[^.][.}][ ]*)[a-z][A-Za-z0-9]*\\b|(?<!\\bextend[ \\t]+|@[ \\t]*|\\b[A-Z][A-Za-z0-9]+[ \\t]+)\\b[a-z][A-Za-z0-9]*(?=[ ]*[({\\[])"
47
+ },
48
+ "upper-dot": {
49
+ "name": "entity.name.namespace.firefly",
50
+ "match": "\\b[A-Z][A-Za-z0-9]*(?=[.])"
51
+ },
52
+ "upper": {
53
+ "name": "entity.name.type.firefly",
54
+ "match": "\\b[A-Z][A-Za-z0-9]*\\b"
55
+ },
56
+ "lower": {
57
+ "name": "entity.name.variable.firefly",
58
+ "match": "\\b[a-z_][A-Za-z0-9_]*\\b"
59
+ },
60
+ "char": {
61
+ "name": "string.quoted.single.firefly",
62
+ "begin": "'",
63
+ "beginCaptures": {
64
+ "0": {
65
+ "name": "punctuation.definition.string.begin.firefly"
66
+ }
67
+ },
68
+ "end": "(')|((?:[^\\\\\\n])$)",
69
+ "endCaptures": {
70
+ "1": {
71
+ "name": "punctuation.definition.string.end.firefly"
72
+ },
73
+ "2": {
74
+ "name": "invalid.illegal.newline.firefly"
75
+ }
76
+ },
77
+ "patterns": [
78
+ {
79
+ "include": "#string-character-escape"
80
+ }
81
+ ]
82
+ },
83
+ "target-js": {
84
+ "contentName": "meta.embedded.block.javascript",
85
+ "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\")(?!\"\")",
86
+ "beginCaptures": {
87
+ "1": {
88
+ "name": "keyword.declaration.firefly"
89
+ },
90
+ "2": {
91
+ "name": "keyword.declaration.firefly"
92
+ },
93
+ "3": {
94
+ "name": "punctuation.definition.string.begin.firefly"
95
+ }
96
+ },
97
+ "end": "(\")|((?:[^\\\\\\n])$)",
98
+ "endCaptures": {
99
+ "1": {
100
+ "name": "punctuation.definition.string.end.firefly"
101
+ },
102
+ "2": {
103
+ "name": "invalid.illegal.newline.firefly"
104
+ }
105
+ },
106
+ "patterns": [
107
+ {
108
+ "include": "#string-character-escape"
109
+ }
110
+ ]
111
+ },
112
+ "target-js-singleline": {
113
+ "contentName": "meta.embedded.block.javascript",
114
+ "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\"\"\")(?![ \t\r]*$)",
115
+ "beginCaptures": {
116
+ "1": {
117
+ "name": "keyword.declaration.firefly"
118
+ },
119
+ "2": {
120
+ "name": "keyword.declaration.firefly"
121
+ },
122
+ "3": {
123
+ "name": "punctuation.definition.string.begin.firefly"
124
+ }
125
+ },
126
+ "end": "\"\"\"(?!\")",
127
+ "endCaptures": {
128
+ "0": {
129
+ "name": "punctuation.definition.string.end.firefly"
130
+ }
131
+ },
132
+ "patterns": [
133
+ {
134
+ "include": "#string-character-escape"
135
+ }
136
+ ]
137
+ },
138
+ "target-js-multiline": {
139
+ "contentName": "meta.embedded.block.javascript",
140
+ "begin": "\\b(js|node|browser)[ ]+(sync|async)[ ]+(\"\"\")",
141
+ "beginCaptures": {
142
+ "1": {
143
+ "name": "keyword.declaration.firefly"
144
+ },
145
+ "2": {
146
+ "name": "keyword.declaration.firefly"
147
+ },
148
+ "3": {
149
+ "name": "punctuation.definition.string.begin.firefly"
150
+ }
151
+ },
152
+ "end": "\"\"\"(?!\")",
153
+ "endCaptures": {
154
+ "0": {
155
+ "name": "punctuation.definition.string.end.firefly"
156
+ }
157
+ },
158
+ "patterns": [
159
+ {
160
+ "include": "#string-character-escape"
161
+ },
162
+ {
163
+ "include": "source.js"
164
+ }
165
+ ]
166
+ },
167
+ "string": {
168
+ "name": "string.quoted.double.firefly",
169
+ "begin": "\"(?!\"\")",
170
+ "beginCaptures": {
171
+ "0": {
172
+ "name": "punctuation.definition.string.begin.firefly"
173
+ }
174
+ },
175
+ "end": "(\")|((?:[^\\\\\\n])$)",
176
+ "endCaptures": {
177
+ "1": {
178
+ "name": "punctuation.definition.string.end.firefly"
179
+ },
180
+ "2": {
181
+ "name": "invalid.illegal.newline.firefly"
182
+ }
183
+ },
184
+ "patterns": [
185
+ {
186
+ "include": "#string-character-escape"
187
+ }
188
+ ]
189
+ },
190
+ "string-multiline": {
191
+ "name": "string.quoted.multiline.firefly",
192
+ "begin": "\"\"\"",
193
+ "beginCaptures": {
194
+ "0": {
195
+ "name": "punctuation.definition.string.begin.firefly"
196
+ }
197
+ },
198
+ "end": "\"\"\"(?!\")",
199
+ "endCaptures": {
200
+ "0": {
201
+ "name": "punctuation.definition.string.end.firefly"
202
+ }
203
+ },
204
+ "patterns": [
205
+ {
206
+ "include": "#string-character-escape"
207
+ }
208
+ ]
209
+ },
210
+ "string-character-escape": {
211
+ "name": "constant.character.escape.firefly",
212
+ "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"
213
+ },
214
+ "number": {
215
+ "patterns": [
216
+ {
217
+ "name": "constant.numeric.hex.firefly",
218
+ "match": "\\b0(x|X)[0-9a-fA-F]+\\b"
219
+ },
220
+ {
221
+ "name": "constant.numeric.binary.firefly",
222
+ "match": "\\b0(b|B)[01]+\\b"
223
+ },
224
+ {
225
+ "name": "constant.numeric.decimal.firefly",
226
+ "match": "\\b[0-9]+([.][0-9]+)?([eE][+-]?[0-9]+)?\\b"
227
+ }
228
+ ]
229
+ },
230
+ "comment": {
231
+ "patterns": [
232
+ {
233
+ "name": "comment.block.firefly",
234
+ "begin": "/\\*",
235
+ "beginCaptures": {
236
+ "0": {
237
+ "name": "punctuation.definition.comment.firefly"
238
+ }
239
+ },
240
+ "end": "\\*/",
241
+ "endCaptures": {
242
+ "0": {
243
+ "name": "punctuation.definition.comment.firefly"
244
+ }
245
+ }
246
+ },
247
+ {
248
+ "begin": "(^[ \\t]+)?(?=//)",
249
+ "beginCaptures": {
250
+ "1": {
251
+ "name": "punctuation.whitespace.comment.leading.firefly"
252
+ }
253
+ },
254
+ "end": "(?=$)",
255
+ "patterns": [
256
+ {
257
+ "name": "comment.line.double-slash.firefly",
258
+ "begin": "//",
259
+ "beginCaptures": {
260
+ "0": {
261
+ "name": "punctuation.definition.comment.firefly"
262
+ }
263
+ },
264
+ "end": "(?=$)"
265
+ }
266
+ ]
267
+ }
268
+ ]
269
+ },
270
+ "ugly-colon": {
271
+ "name": "invalid.ugly.colon.firefly",
272
+ "match": "(?<=[ ])[:]"
273
+ },
274
+ "ugly-comma": {
275
+ "name": "invalid.ugly.comma.firefly",
276
+ "match": "(?<=[ ])[,]|[,](?![ ])"
277
+ },
278
+ "ugly-arrow": {
279
+ "name": "invalid.ugly.arrow.firefly",
280
+ "match": "(?<=[A-Za-z0-9])[=][>]|[=][>](?![ ]|$)"
281
+ },
282
+ "ugly-pipe": {
283
+ "name": "invalid.ugly.pipe.firefly",
284
+ "match": "(?<=[{][ ]+)[|]|[|](?![ |]|$)"
285
+ },
286
+ "ugly-round": {
287
+ "name": "invalid.ugly.round.firefly",
288
+ "match": "(?<=[A-Za-z0-9][ ]+)[(]|[(](?=[ ]+[^/])"
289
+ },
290
+ "ugly-square": {
291
+ "name": "invalid.ugly.square.firefly",
292
+ "match": "(?<=[A-Za-z0-9])[ ]+[\\[]|[\\[](?=[ ]+[^/])"
293
+ },
294
+ "ugly-curly": {
295
+ "name": "invalid.ugly.curly.firefly",
296
+ "match": "(?<=[A-Za-z0-9])[{]|[{](?=[ ]+[^/])|[}](?=[a-z])"
297
+ }
298
+ }
299
+ }
@@ -1,11 +0,0 @@
1
- import Guide
2
-
3
- new(): Document {
4
- ReadyDocument([
5
- Section("Reference", [
6
- Paragraph([
7
- Text("This is a reference for the Firefly programming language.")
8
- ])
9
- ])
10
- ])
11
- }