rapydscript-ng 0.7.23 → 0.8.0

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 (114) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +72 -26
  3. package/bin/package.json +1 -0
  4. package/bin/rapydscript +65 -62
  5. package/editor-plugins/nvim/rapydscript/README.md +184 -0
  6. package/editor-plugins/nvim/rapydscript/bin/rapydscript.so +0 -0
  7. package/editor-plugins/nvim/rapydscript/ftdetect/rapydscript.lua +10 -0
  8. package/editor-plugins/nvim/rapydscript/lua/rapydscript/health.lua +88 -0
  9. package/editor-plugins/nvim/rapydscript/lua/rapydscript/init.lua +279 -0
  10. package/local-agent.md +28 -0
  11. package/package.json +4 -5
  12. package/release/baselib-plain-pretty.js +448 -326
  13. package/release/baselib-plain-ugly.js +3 -3
  14. package/release/compiler.js +2528 -1672
  15. package/release/signatures.json +17 -17
  16. package/src/ast.pyj +73 -25
  17. package/src/baselib-builtins.pyj +2 -2
  18. package/src/baselib-containers.pyj +153 -151
  19. package/src/baselib-internal.pyj +3 -3
  20. package/src/baselib-str.pyj +5 -5
  21. package/src/lib/aes.pyj +1 -1
  22. package/src/lib/encodings.pyj +1 -1
  23. package/src/lib/pythonize.pyj +1 -1
  24. package/src/lib/re.pyj +2 -2
  25. package/src/lib/traceback.pyj +165 -28
  26. package/src/lib/uuid.pyj +1 -1
  27. package/src/output/codegen.pyj +10 -3
  28. package/src/output/functions.pyj +31 -40
  29. package/src/output/literals.pyj +11 -14
  30. package/src/output/loops.pyj +25 -87
  31. package/src/output/modules.pyj +5 -47
  32. package/src/output/statements.pyj +1 -1
  33. package/src/output/stream.pyj +58 -31
  34. package/src/parse.pyj +777 -427
  35. package/src/tokenizer.pyj +16 -4
  36. package/src/utils.pyj +1 -1
  37. package/test/_treeshake_mod.pyj +30 -0
  38. package/test/_treeshake_side_effect.pyj +9 -0
  39. package/test/ast_serialization.pyj +392 -0
  40. package/test/async.pyj +95 -0
  41. package/test/baselib.pyj +1 -2
  42. package/test/embedded_compiler.pyj +57 -0
  43. package/test/fmt.pyj +201 -0
  44. package/test/generic.pyj +7 -3
  45. package/test/imports.pyj +8 -6
  46. package/test/internationalization.pyj +38 -37
  47. package/test/lint.pyj +120 -115
  48. package/test/lsp.pyj +222 -0
  49. package/test/repl.pyj +70 -65
  50. package/test/sourcemaps.pyj +315 -0
  51. package/test/starargs.pyj +46 -39
  52. package/test/traceback.pyj +263 -0
  53. package/test/treeshaking.pyj +181 -0
  54. package/test/web_repl_export.pyj +88 -0
  55. package/tools/ast_serialize.mjs +557 -0
  56. package/tools/cli.mjs +510 -0
  57. package/tools/compile.mjs +201 -0
  58. package/tools/compiler.mjs +127 -0
  59. package/tools/{completer.js → completer.mjs} +6 -6
  60. package/tools/{embedded_compiler.js → embedded_compiler.mjs} +17 -13
  61. package/tools/export.js +109 -56
  62. package/tools/fmt.mjs +735 -0
  63. package/tools/{gettext.js → gettext.mjs} +46 -53
  64. package/tools/{ini.js → ini.mjs} +9 -10
  65. package/tools/{lint.js → lint.mjs} +107 -56
  66. package/tools/lsp.mjs +914 -0
  67. package/tools/lsp_protocol.mjs +259 -0
  68. package/tools/lsp_symbols.mjs +418 -0
  69. package/tools/{msgfmt.js → msgfmt.mjs} +18 -18
  70. package/tools/{repl.js → repl.mjs} +52 -41
  71. package/tools/{self.js → self.mjs} +56 -46
  72. package/tools/sourcemap.mjs +123 -0
  73. package/tools/test.mjs +152 -0
  74. package/tools/treeshake.mjs +400 -0
  75. package/tools/{utils.js → utils.mjs} +26 -23
  76. package/tools/{web_repl.js → web_repl.mjs} +15 -13
  77. package/tools/web_repl_export.mjs +93 -0
  78. package/tree-sitter/README.md +101 -0
  79. package/tree-sitter/grammar.js +992 -0
  80. package/tree-sitter/package.json +43 -0
  81. package/tree-sitter/queries/rapydscript/highlights.scm +232 -0
  82. package/tree-sitter/queries/rapydscript/indents.scm +64 -0
  83. package/tree-sitter/queries/rapydscript/injections.scm +14 -0
  84. package/tree-sitter/queries/rapydscript/locals.scm +108 -0
  85. package/tree-sitter/src/grammar.json +4976 -0
  86. package/tree-sitter/src/node-types.json +2901 -0
  87. package/tree-sitter/src/parser.c +196465 -0
  88. package/tree-sitter/src/scanner.c +294 -0
  89. package/tree-sitter/src/tree_sitter/alloc.h +54 -0
  90. package/tree-sitter/src/tree_sitter/array.h +330 -0
  91. package/tree-sitter/src/tree_sitter/parser.h +286 -0
  92. package/tree-sitter/test/corpus/chaining.txt +99 -0
  93. package/tree-sitter/test/corpus/classes.txt +147 -0
  94. package/tree-sitter/test/corpus/comprehensions.txt +155 -0
  95. package/tree-sitter/test/corpus/containers.txt +242 -0
  96. package/tree-sitter/test/corpus/control_flow.txt +361 -0
  97. package/tree-sitter/test/corpus/decorators.txt +64 -0
  98. package/tree-sitter/test/corpus/existential.txt +102 -0
  99. package/tree-sitter/test/corpus/functions.txt +293 -0
  100. package/tree-sitter/test/corpus/imports.txt +117 -0
  101. package/tree-sitter/test/corpus/literals.txt +135 -0
  102. package/tree-sitter/test/corpus/operators.txt +296 -0
  103. package/tree-sitter/test/corpus/statements.txt +189 -0
  104. package/tree-sitter/test/corpus/strings.txt +90 -0
  105. package/tree-sitter/test/corpus/subscripts.txt +227 -0
  106. package/tree-sitter/tree-sitter.json +36 -0
  107. package/web-repl/env.js +35 -23
  108. package/web-repl/main.js +8 -8
  109. package/bin/export +0 -75
  110. package/bin/web-repl-export +0 -102
  111. package/tools/cli.js +0 -523
  112. package/tools/compile.js +0 -184
  113. package/tools/compiler.js +0 -84
  114. package/tools/test.js +0 -110
@@ -0,0 +1,296 @@
1
+ ==================
2
+ arithmetic operators
3
+ ==================
4
+
5
+ a = 1 + 2 - 3 * 4 / 5 % 6
6
+ b = 7 // 8
7
+ c = 2 ** 10
8
+
9
+ ---
10
+
11
+ (module
12
+ (assignment
13
+ left: (pattern
14
+ (identifier))
15
+ right: (binary_operator
16
+ left: (binary_operator
17
+ left: (number)
18
+ right: (number))
19
+ right: (binary_operator
20
+ left: (binary_operator
21
+ left: (binary_operator
22
+ left: (number)
23
+ right: (number))
24
+ right: (number))
25
+ right: (number))))
26
+ (assignment
27
+ left: (pattern
28
+ (identifier))
29
+ right: (binary_operator
30
+ left: (number)
31
+ right: (number)))
32
+ (assignment
33
+ left: (pattern
34
+ (identifier))
35
+ right: (binary_operator
36
+ left: (number)
37
+ right: (number))))
38
+
39
+ ==================
40
+ boolean operators
41
+ ==================
42
+
43
+ x = a and b or not c
44
+
45
+ ---
46
+
47
+ (module
48
+ (assignment
49
+ left: (pattern
50
+ (identifier))
51
+ right: (boolean_operator
52
+ left: (boolean_operator
53
+ left: (identifier)
54
+ right: (identifier))
55
+ right: (not_operator
56
+ argument: (identifier)))))
57
+
58
+ ==================
59
+ comparison chaining
60
+ ==================
61
+
62
+ r = 3 < 5 < 7
63
+
64
+ ---
65
+
66
+ (module
67
+ (assignment
68
+ left: (pattern
69
+ (identifier))
70
+ right: (comparison_operator
71
+ (number)
72
+ (comparison_operator
73
+ (number)
74
+ (number)))))
75
+
76
+ ==================
77
+ is and is not
78
+ ==================
79
+
80
+ a = x is None
81
+ b = y is not None
82
+
83
+ ---
84
+
85
+ (module
86
+ (assignment
87
+ left: (pattern
88
+ (identifier))
89
+ right: (comparison_operator
90
+ (identifier)
91
+ (none)))
92
+ (assignment
93
+ left: (pattern
94
+ (identifier))
95
+ right: (comparison_operator
96
+ (identifier)
97
+ (not_operator
98
+ argument: (none)))))
99
+
100
+ ==================
101
+ in and not in
102
+ ==================
103
+
104
+ a = x in items
105
+ b = y not in items
106
+
107
+ ---
108
+
109
+ (module
110
+ (assignment
111
+ left: (pattern
112
+ (identifier))
113
+ right: (comparison_operator
114
+ (identifier)
115
+ (identifier)))
116
+ (assignment
117
+ left: (pattern
118
+ (identifier))
119
+ right: (comparison_operator
120
+ (identifier)
121
+ (identifier))))
122
+
123
+ ==================
124
+ bitwise operators
125
+ ==================
126
+
127
+ a = x & y | z ^ w
128
+ b = ~a
129
+ c = x << 2 >> 1
130
+
131
+ ---
132
+
133
+ (module
134
+ (assignment
135
+ left: (pattern
136
+ (identifier))
137
+ right: (binary_operator
138
+ left: (binary_operator
139
+ left: (identifier)
140
+ right: (identifier))
141
+ right: (binary_operator
142
+ left: (identifier)
143
+ right: (identifier))))
144
+ (assignment
145
+ left: (pattern
146
+ (identifier))
147
+ right: (unary_operator
148
+ argument: (identifier)))
149
+ (assignment
150
+ left: (pattern
151
+ (identifier))
152
+ right: (binary_operator
153
+ left: (binary_operator
154
+ left: (identifier)
155
+ right: (number))
156
+ right: (number))))
157
+
158
+ ==================
159
+ unary operators
160
+ ==================
161
+
162
+ a = -x
163
+ b = not w
164
+
165
+ ---
166
+
167
+ (module
168
+ (assignment
169
+ left: (pattern
170
+ (identifier))
171
+ right: (unary_operator
172
+ argument: (identifier)))
173
+ (assignment
174
+ left: (pattern
175
+ (identifier))
176
+ right: (not_operator
177
+ argument: (identifier))))
178
+
179
+ ==================
180
+ augmented assignment
181
+ ==================
182
+
183
+ a += 1
184
+ b //= 4
185
+ c **= 5
186
+
187
+ ---
188
+
189
+ (module
190
+ (augmented_assignment
191
+ left: (pattern
192
+ (identifier))
193
+ right: (number))
194
+ (augmented_assignment
195
+ left: (pattern
196
+ (identifier))
197
+ right: (number))
198
+ (augmented_assignment
199
+ left: (pattern
200
+ (identifier))
201
+ right: (number)))
202
+
203
+ ==================
204
+ assignment as expression
205
+ ==================
206
+
207
+ node = a[i -= 1]
208
+ r = (x += 1)
209
+
210
+ ---
211
+
212
+ (module
213
+ (assignment
214
+ left: (pattern
215
+ (identifier))
216
+ right: (subscript
217
+ object: (identifier)
218
+ subscript: (augmented_assignment
219
+ left: (pattern
220
+ (identifier))
221
+ right: (number))))
222
+ (assignment
223
+ left: (pattern
224
+ (identifier))
225
+ right: (parenthesized_expression
226
+ (augmented_assignment
227
+ left: (pattern
228
+ (identifier))
229
+ right: (number)))))
230
+
231
+ ==================
232
+ ternary conditional
233
+ ==================
234
+
235
+ a = 1 if cond else 2
236
+
237
+ ---
238
+
239
+ (module
240
+ (conditional_expression
241
+ (assignment
242
+ left: (pattern
243
+ (identifier))
244
+ right: (number))
245
+ (identifier)
246
+ (number)))
247
+
248
+ ==================
249
+ power right associative
250
+ ==================
251
+
252
+ a = 2 ** 3 ** 4
253
+
254
+ ---
255
+
256
+ (module
257
+ (assignment
258
+ left: (pattern
259
+ (identifier))
260
+ right: (binary_operator
261
+ left: (number)
262
+ right: (binary_operator
263
+ left: (number)
264
+ right: (number)))))
265
+
266
+ ==================
267
+ tuple packing and unpacking
268
+ ==================
269
+
270
+ a, b = b, a
271
+ x, y, z = fun()
272
+
273
+ ---
274
+
275
+ (module
276
+ (assignment
277
+ left: (pattern_list
278
+ (pattern
279
+ (identifier))
280
+ (pattern
281
+ (identifier)))
282
+ right: (expression_list
283
+ (identifier)
284
+ (identifier)))
285
+ (assignment
286
+ left: (pattern_list
287
+ (pattern
288
+ (identifier))
289
+ (pattern
290
+ (identifier))
291
+ (pattern
292
+ (identifier)))
293
+ right: (call
294
+ function: (identifier)
295
+ arguments: (argument_list))))
296
+
@@ -0,0 +1,189 @@
1
+ ==================
2
+ assignment
3
+ ==================
4
+
5
+ x = 1
6
+
7
+ ---
8
+
9
+ (module
10
+ (assignment
11
+ left: (pattern
12
+ (identifier))
13
+ right: (number)))
14
+
15
+ ==================
16
+ chained assignment
17
+ ==================
18
+
19
+ a = b = c
20
+
21
+ ---
22
+
23
+ (module
24
+ (assignment
25
+ left: (pattern
26
+ (identifier))
27
+ right: (assignment
28
+ left: (pattern
29
+ (identifier))
30
+ right: (identifier))))
31
+
32
+ ==================
33
+ pass statement
34
+ ==================
35
+
36
+ def f():
37
+ pass
38
+
39
+ ---
40
+
41
+ (module
42
+ (anonymous_function
43
+ name: (identifier)
44
+ parameters: (parameters)
45
+ body: (block
46
+ (pass_statement))))
47
+
48
+ ==================
49
+ assert statement
50
+ ==================
51
+
52
+ assert x == 1
53
+
54
+ ---
55
+
56
+ (module
57
+ (assert_statement
58
+ (comparison_operator
59
+ (identifier)
60
+ (number))))
61
+
62
+ ==================
63
+ assert with message
64
+ ==================
65
+
66
+ assert x, "must be set"
67
+
68
+ ---
69
+
70
+ (module
71
+ (assert_statement
72
+ (identifier)
73
+ (string)))
74
+
75
+ ==================
76
+ global and nonlocal
77
+ ==================
78
+
79
+ def f():
80
+ global a
81
+ nonlocal b, c
82
+
83
+ ---
84
+
85
+ (module
86
+ (anonymous_function
87
+ name: (identifier)
88
+ parameters: (parameters)
89
+ body: (block
90
+ (global_statement
91
+ (identifier))
92
+ (nonlocal_statement
93
+ (identifier)
94
+ (identifier)))))
95
+
96
+ ==================
97
+ delete statement
98
+ ==================
99
+
100
+ del x
101
+
102
+ ---
103
+
104
+ (module
105
+ (delete_statement
106
+ (identifier)))
107
+
108
+ ==================
109
+ debugger statement
110
+ ==================
111
+
112
+ debugger
113
+
114
+ ---
115
+
116
+ (module
117
+ (debugger_statement))
118
+
119
+ ==================
120
+ expression statement
121
+ ==================
122
+
123
+ foo()
124
+
125
+ ---
126
+
127
+ (module
128
+ (call
129
+ function: (identifier)
130
+ arguments: (argument_list)))
131
+
132
+ ==================
133
+ yield
134
+ ==================
135
+
136
+ def gen():
137
+ yield 1
138
+
139
+ ---
140
+
141
+ (module
142
+ (anonymous_function
143
+ name: (identifier)
144
+ parameters: (parameters)
145
+ body: (block
146
+ (yield_statement
147
+ (yield
148
+ (number))))))
149
+
150
+ ==================
151
+ yield from
152
+ ==================
153
+
154
+ def gen():
155
+ yield from other()
156
+
157
+ ---
158
+
159
+ (module
160
+ (anonymous_function
161
+ name: (identifier)
162
+ parameters: (parameters)
163
+ body: (block
164
+ (yield_statement
165
+ (yield
166
+ from: (call
167
+ function: (identifier)
168
+ arguments: (argument_list)))))))
169
+
170
+ ==================
171
+ return multiple values
172
+ ==================
173
+
174
+ def f():
175
+ return 1, 2, 3
176
+
177
+ ---
178
+
179
+ (module
180
+ (anonymous_function
181
+ name: (identifier)
182
+ parameters: (parameters)
183
+ body: (block
184
+ (return_statement
185
+ (expression_list
186
+ (number)
187
+ (number)
188
+ (number))))))
189
+
@@ -0,0 +1,90 @@
1
+ ==================
2
+ single and double quoted
3
+ ==================
4
+
5
+ a = "hello"
6
+ b = "world"
7
+
8
+ ---
9
+
10
+ (module
11
+ (assignment
12
+ left: (pattern
13
+ (identifier))
14
+ right: (string))
15
+ (assignment
16
+ left: (pattern
17
+ (identifier))
18
+ right: (string)))
19
+
20
+ ==================
21
+ triple quoted string
22
+ ==================
23
+
24
+ a = """multi
25
+ line"""
26
+
27
+ ---
28
+
29
+ (module
30
+ (assignment
31
+ left: (pattern
32
+ (identifier))
33
+ right: (string)))
34
+
35
+ ==================
36
+ string modifiers r u f
37
+ ==================
38
+
39
+ a = r'x'
40
+ b = u'y'
41
+ c = f'val {x}'
42
+
43
+
44
+ ---
45
+
46
+ (module
47
+ (assignment
48
+ left: (pattern
49
+ (identifier))
50
+ right: (string))
51
+ (assignment
52
+ left: (pattern
53
+ (identifier))
54
+ right: (string))
55
+ (assignment
56
+ left: (pattern
57
+ (identifier))
58
+ right: (string)))
59
+
60
+ ==================
61
+ verbatim javascript literal
62
+ ==================
63
+
64
+ a = v'js literal'
65
+
66
+
67
+ ---
68
+
69
+ (module
70
+ (assignment
71
+ left: (pattern
72
+ (identifier))
73
+ right: (verbatim)))
74
+
75
+ ==================
76
+ concatenated strings
77
+ ==================
78
+
79
+ a = "foo" "bar"
80
+
81
+ ---
82
+
83
+ (module
84
+ (assignment
85
+ left: (pattern
86
+ (identifier))
87
+ right: (concatenated_string
88
+ (string)
89
+ (string))))
90
+