goscript 0.0.26 → 0.0.29

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 (228) hide show
  1. package/README.md +4 -4
  2. package/cmd/goscript/cmd_compile.go +0 -3
  3. package/cmd/goscript/deps.go +11 -0
  4. package/compiler/analysis.go +298 -55
  5. package/compiler/assignment.go +2 -2
  6. package/compiler/builtin_test.go +1 -1
  7. package/compiler/compiler.go +200 -68
  8. package/compiler/compiler_test.go +17 -24
  9. package/compiler/composite-lit.go +32 -8
  10. package/compiler/decl.go +6 -6
  11. package/compiler/expr-call.go +170 -15
  12. package/compiler/expr-selector.go +100 -0
  13. package/compiler/expr.go +1 -1
  14. package/compiler/protobuf.go +557 -0
  15. package/compiler/spec-struct.go +4 -0
  16. package/compiler/spec-value.go +89 -10
  17. package/compiler/spec.go +254 -1
  18. package/compiler/stmt-assign.go +35 -0
  19. package/compiler/type-assert.go +87 -0
  20. package/compiler/type.go +4 -1
  21. package/dist/gs/builtin/builtin.d.ts +20 -1
  22. package/dist/gs/builtin/builtin.js +95 -4
  23. package/dist/gs/builtin/builtin.js.map +1 -1
  24. package/dist/gs/builtin/slice.d.ts +1 -1
  25. package/dist/gs/builtin/slice.js +21 -2
  26. package/dist/gs/builtin/slice.js.map +1 -1
  27. package/dist/gs/errors/errors.d.ts +5 -6
  28. package/dist/gs/errors/errors.js.map +1 -1
  29. package/dist/gs/internal/oserror/errors.d.ts +6 -0
  30. package/dist/gs/internal/oserror/errors.js +7 -0
  31. package/dist/gs/internal/oserror/errors.js.map +1 -0
  32. package/dist/gs/internal/oserror/index.d.ts +1 -0
  33. package/dist/gs/internal/oserror/index.js +2 -0
  34. package/dist/gs/internal/oserror/index.js.map +1 -0
  35. package/dist/gs/io/fs/format.d.ts +3 -0
  36. package/dist/gs/io/fs/format.js +56 -0
  37. package/dist/gs/io/fs/format.js.map +1 -0
  38. package/dist/gs/io/fs/fs.d.ts +79 -0
  39. package/dist/gs/io/fs/fs.js +200 -0
  40. package/dist/gs/io/fs/fs.js.map +1 -0
  41. package/dist/gs/io/fs/glob.d.ts +10 -0
  42. package/dist/gs/io/fs/glob.js +141 -0
  43. package/dist/gs/io/fs/glob.js.map +1 -0
  44. package/dist/gs/io/fs/index.d.ts +8 -0
  45. package/dist/gs/io/fs/index.js +9 -0
  46. package/dist/gs/io/fs/index.js.map +1 -0
  47. package/dist/gs/io/fs/readdir.d.ts +7 -0
  48. package/dist/gs/io/fs/readdir.js +152 -0
  49. package/dist/gs/io/fs/readdir.js.map +1 -0
  50. package/dist/gs/io/fs/readfile.d.ts +6 -0
  51. package/dist/gs/io/fs/readfile.js +118 -0
  52. package/dist/gs/io/fs/readfile.js.map +1 -0
  53. package/dist/gs/io/fs/stat.d.ts +6 -0
  54. package/dist/gs/io/fs/stat.js +87 -0
  55. package/dist/gs/io/fs/stat.js.map +1 -0
  56. package/dist/gs/io/fs/sub.d.ts +6 -0
  57. package/dist/gs/io/fs/sub.js +172 -0
  58. package/dist/gs/io/fs/sub.js.map +1 -0
  59. package/dist/gs/io/fs/walk.d.ts +7 -0
  60. package/dist/gs/io/fs/walk.js +76 -0
  61. package/dist/gs/io/fs/walk.js.map +1 -0
  62. package/dist/gs/io/index.d.ts +1 -0
  63. package/dist/gs/io/index.js +2 -0
  64. package/dist/gs/io/index.js.map +1 -0
  65. package/dist/gs/io/io.d.ts +107 -0
  66. package/dist/gs/io/io.js +385 -0
  67. package/dist/gs/io/io.js.map +1 -0
  68. package/dist/gs/path/index.d.ts +2 -0
  69. package/dist/gs/path/index.js +3 -0
  70. package/dist/gs/path/index.js.map +1 -0
  71. package/dist/gs/path/match.d.ts +6 -0
  72. package/dist/gs/path/match.js +281 -0
  73. package/dist/gs/path/match.js.map +1 -0
  74. package/dist/gs/path/path.d.ts +7 -0
  75. package/dist/gs/path/path.js +256 -0
  76. package/dist/gs/path/path.js.map +1 -0
  77. package/dist/gs/strings/builder.d.ts +18 -0
  78. package/dist/gs/strings/builder.js +205 -0
  79. package/dist/gs/strings/builder.js.map +1 -0
  80. package/dist/gs/strings/clone.d.ts +1 -0
  81. package/dist/gs/strings/clone.js +16 -0
  82. package/dist/gs/strings/clone.js.map +1 -0
  83. package/dist/gs/strings/compare.d.ts +1 -0
  84. package/dist/gs/strings/compare.js +14 -0
  85. package/dist/gs/strings/compare.js.map +1 -0
  86. package/dist/gs/strings/index.d.ts +2 -0
  87. package/dist/gs/strings/index.js +3 -0
  88. package/dist/gs/strings/index.js.map +1 -0
  89. package/dist/gs/strings/iter.d.ts +8 -0
  90. package/dist/gs/strings/iter.js +160 -0
  91. package/dist/gs/strings/iter.js.map +1 -0
  92. package/dist/gs/strings/reader.d.ts +34 -0
  93. package/dist/gs/strings/reader.js +418 -0
  94. package/dist/gs/strings/reader.js.map +1 -0
  95. package/dist/gs/strings/replace.d.ts +106 -0
  96. package/dist/gs/strings/replace.js +1136 -0
  97. package/dist/gs/strings/replace.js.map +1 -0
  98. package/dist/gs/strings/search.d.ts +24 -0
  99. package/dist/gs/strings/search.js +169 -0
  100. package/dist/gs/strings/search.js.map +1 -0
  101. package/dist/gs/strings/strings.d.ts +47 -0
  102. package/dist/gs/strings/strings.js +418 -0
  103. package/dist/gs/strings/strings.js.map +1 -0
  104. package/dist/gs/stringslite/index.d.ts +1 -0
  105. package/dist/gs/stringslite/index.js +2 -0
  106. package/dist/gs/stringslite/index.js.map +1 -0
  107. package/dist/gs/stringslite/strings.d.ts +11 -0
  108. package/dist/gs/stringslite/strings.js +67 -0
  109. package/dist/gs/stringslite/strings.js.map +1 -0
  110. package/dist/gs/sync/index.d.ts +1 -0
  111. package/dist/gs/sync/index.js +2 -0
  112. package/dist/gs/sync/index.js.map +1 -0
  113. package/dist/gs/sync/sync.d.ts +79 -0
  114. package/dist/gs/sync/sync.js +392 -0
  115. package/dist/gs/sync/sync.js.map +1 -0
  116. package/dist/gs/time/time.d.ts +11 -2
  117. package/dist/gs/time/time.js +337 -12
  118. package/dist/gs/time/time.js.map +1 -1
  119. package/dist/gs/unicode/index.d.ts +1 -0
  120. package/dist/gs/unicode/index.js +2 -0
  121. package/dist/gs/unicode/index.js.map +1 -0
  122. package/dist/gs/unicode/unicode.d.ts +105 -0
  123. package/dist/gs/unicode/unicode.js +332 -0
  124. package/dist/gs/unicode/unicode.js.map +1 -0
  125. package/dist/gs/unicode/utf8/index.d.ts +1 -0
  126. package/dist/gs/unicode/utf8/index.js +3 -0
  127. package/dist/gs/unicode/utf8/index.js.map +1 -0
  128. package/dist/gs/unicode/utf8/utf8.d.ts +20 -0
  129. package/dist/gs/unicode/utf8/utf8.js +196 -0
  130. package/dist/gs/unicode/utf8/utf8.js.map +1 -0
  131. package/dist/gs/unsafe/index.d.ts +1 -0
  132. package/dist/gs/unsafe/index.js +2 -0
  133. package/dist/gs/unsafe/index.js.map +1 -0
  134. package/dist/gs/unsafe/unsafe.d.ts +11 -0
  135. package/dist/gs/unsafe/unsafe.js +44 -0
  136. package/dist/gs/unsafe/unsafe.js.map +1 -0
  137. package/go.mod +2 -1
  138. package/go.sum +6 -2
  139. package/gs/README.md +6 -0
  140. package/gs/builtin/builtin.ts +171 -0
  141. package/gs/builtin/channel.ts +683 -0
  142. package/gs/builtin/defer.ts +58 -0
  143. package/gs/builtin/index.ts +1 -0
  144. package/gs/builtin/io.ts +22 -0
  145. package/gs/builtin/map.ts +50 -0
  146. package/gs/builtin/slice.ts +1030 -0
  147. package/gs/builtin/type.ts +1106 -0
  148. package/gs/builtin/varRef.ts +25 -0
  149. package/gs/cmp/godoc.txt +8 -0
  150. package/gs/cmp/index.ts +29 -0
  151. package/gs/context/context.ts +401 -0
  152. package/gs/context/godoc.txt +69 -0
  153. package/gs/context/index.ts +1 -0
  154. package/gs/errors/errors.ts +223 -0
  155. package/gs/errors/godoc.txt +63 -0
  156. package/gs/errors/index.ts +1 -0
  157. package/gs/internal/goarch/godoc.txt +39 -0
  158. package/gs/internal/goarch/index.ts +18 -0
  159. package/gs/internal/oserror/errors.ts +14 -0
  160. package/gs/internal/oserror/index.ts +1 -0
  161. package/gs/io/fs/format.ts +65 -0
  162. package/gs/io/fs/fs.ts +359 -0
  163. package/gs/io/fs/glob.ts +167 -0
  164. package/gs/io/fs/godoc.txt +35 -0
  165. package/gs/io/fs/index.ts +8 -0
  166. package/gs/io/fs/readdir.ts +126 -0
  167. package/gs/io/fs/readfile.ts +77 -0
  168. package/gs/io/fs/stat.ts +38 -0
  169. package/gs/io/fs/sub.ts +208 -0
  170. package/gs/io/fs/walk.ts +89 -0
  171. package/gs/io/godoc.txt +61 -0
  172. package/gs/io/index.ts +1 -0
  173. package/gs/io/io.go +75 -0
  174. package/gs/io/io.ts +546 -0
  175. package/gs/iter/godoc.txt +203 -0
  176. package/gs/iter/index.ts +1 -0
  177. package/gs/iter/iter.ts +117 -0
  178. package/gs/math/bits/index.ts +356 -0
  179. package/gs/math/godoc.txt +76 -0
  180. package/gs/path/index.ts +2 -0
  181. package/gs/path/match.ts +307 -0
  182. package/gs/path/path.ts +301 -0
  183. package/gs/runtime/godoc.txt +331 -0
  184. package/gs/runtime/index.ts +1 -0
  185. package/gs/runtime/runtime.ts +178 -0
  186. package/gs/slices/godoc.txt +44 -0
  187. package/gs/slices/index.ts +1 -0
  188. package/gs/slices/slices.ts +22 -0
  189. package/gs/strings/builder.test.ts +121 -0
  190. package/gs/strings/builder.ts +223 -0
  191. package/gs/strings/clone.test.ts +43 -0
  192. package/gs/strings/clone.ts +17 -0
  193. package/gs/strings/compare.test.ts +84 -0
  194. package/gs/strings/compare.ts +13 -0
  195. package/gs/strings/godoc.txt +66 -0
  196. package/gs/strings/index.ts +2 -0
  197. package/gs/strings/iter.test.ts +343 -0
  198. package/gs/strings/iter.ts +171 -0
  199. package/gs/strings/reader.test.ts +242 -0
  200. package/gs/strings/reader.ts +451 -0
  201. package/gs/strings/replace.test.ts +181 -0
  202. package/gs/strings/replace.ts +1310 -0
  203. package/gs/strings/search.test.ts +214 -0
  204. package/gs/strings/search.ts +213 -0
  205. package/gs/strings/strings.test.ts +477 -0
  206. package/gs/strings/strings.ts +510 -0
  207. package/gs/stringslite/godoc.txt +17 -0
  208. package/gs/stringslite/index.ts +1 -0
  209. package/gs/stringslite/strings.ts +82 -0
  210. package/gs/sync/godoc.txt +21 -0
  211. package/gs/sync/index.ts +1 -0
  212. package/gs/sync/sync.go +64 -0
  213. package/gs/sync/sync.ts +449 -0
  214. package/gs/time/godoc.txt +116 -0
  215. package/gs/time/index.ts +1 -0
  216. package/gs/time/time.ts +585 -0
  217. package/gs/unicode/godoc.txt +52 -0
  218. package/gs/unicode/index.ts +1 -0
  219. package/gs/unicode/unicode.go +38 -0
  220. package/gs/unicode/unicode.ts +418 -0
  221. package/gs/unicode/utf8/godoc.txt +22 -0
  222. package/gs/unicode/utf8/index.ts +2 -0
  223. package/gs/unicode/utf8/utf8.ts +227 -0
  224. package/gs/unsafe/godoc.txt +19 -0
  225. package/gs/unsafe/index.ts +1 -0
  226. package/gs/unsafe/unsafe.test.ts +68 -0
  227. package/gs/unsafe/unsafe.ts +77 -0
  228. package/package.json +4 -3
@@ -0,0 +1,418 @@
1
+ import * as $ from '@goscript/builtin/builtin.js';
2
+ import * as errors from '@goscript/errors/index.js';
3
+ import * as io from '@goscript/io/index.js';
4
+ import * as utf8 from '@goscript/unicode/utf8/index.js';
5
+ export class Reader {
6
+ get s() {
7
+ return this._fields.s.value;
8
+ }
9
+ set s(value) {
10
+ this._fields.s.value = value;
11
+ }
12
+ // current reading index
13
+ get i() {
14
+ return this._fields.i.value;
15
+ }
16
+ set i(value) {
17
+ this._fields.i.value = value;
18
+ }
19
+ // index of previous rune; or < 0
20
+ get prevRune() {
21
+ return this._fields.prevRune.value;
22
+ }
23
+ set prevRune(value) {
24
+ this._fields.prevRune.value = value;
25
+ }
26
+ _fields;
27
+ constructor(init) {
28
+ this._fields = {
29
+ s: $.varRef(init?.s ?? ''),
30
+ i: $.varRef(init?.i ?? 0),
31
+ prevRune: $.varRef(init?.prevRune ?? 0),
32
+ };
33
+ }
34
+ clone() {
35
+ const cloned = new Reader();
36
+ cloned._fields = {
37
+ s: $.varRef(this._fields.s.value),
38
+ i: $.varRef(this._fields.i.value),
39
+ prevRune: $.varRef(this._fields.prevRune.value),
40
+ };
41
+ return cloned;
42
+ }
43
+ // Len returns the number of bytes of the unread portion of the
44
+ // string.
45
+ Len() {
46
+ const r = this;
47
+ if (r.i >= $.len(r.s)) {
48
+ return 0;
49
+ }
50
+ return ($.len(r.s) - r.i);
51
+ }
52
+ // Size returns the original length of the underlying string.
53
+ // Size is the number of bytes available for reading via [Reader.ReadAt].
54
+ // The returned value is always the same and is not affected by calls
55
+ // to any other method.
56
+ Size() {
57
+ const r = this;
58
+ return $.len(r.s);
59
+ }
60
+ // Read implements the [io.Reader] interface.
61
+ Read(b) {
62
+ const r = this;
63
+ if (r.i >= $.len(r.s)) {
64
+ return [0, io.EOF];
65
+ }
66
+ r.prevRune = -1;
67
+ let n = $.copy(b, $.sliceString(r.s, r.i, undefined));
68
+ r.i += n;
69
+ let err = null;
70
+ return [n, err];
71
+ }
72
+ // ReadAt implements the [io.ReaderAt] interface.
73
+ ReadAt(b, off) {
74
+ const r = this;
75
+ if (off < 0) {
76
+ return [0, errors.New('strings.Reader.ReadAt: negative offset')];
77
+ }
78
+ if (off >= $.len(r.s)) {
79
+ return [0, io.EOF];
80
+ }
81
+ let n = $.copy(b, $.sliceString(r.s, off, undefined));
82
+ let err = null;
83
+ if (n < $.len(b)) {
84
+ err = io.EOF;
85
+ }
86
+ return [n, err];
87
+ }
88
+ // ReadByte implements the [io.ByteReader] interface.
89
+ ReadByte() {
90
+ const r = this;
91
+ r.prevRune = -1;
92
+ if (r.i >= $.len(r.s)) {
93
+ return [0, io.EOF];
94
+ }
95
+ let b = $.indexString(r.s, r.i);
96
+ r.i++;
97
+ return [b, null];
98
+ }
99
+ // UnreadByte implements the [io.ByteScanner] interface.
100
+ UnreadByte() {
101
+ const r = this;
102
+ if (r.i <= 0) {
103
+ return errors.New('strings.Reader.UnreadByte: at beginning of string');
104
+ }
105
+ r.prevRune = -1;
106
+ r.i--;
107
+ return null;
108
+ }
109
+ // ReadRune implements the [io.RuneReader] interface.
110
+ ReadRune() {
111
+ const r = this;
112
+ if (r.i >= $.len(r.s)) {
113
+ r.prevRune = -1;
114
+ return [0, 0, io.EOF];
115
+ }
116
+ r.prevRune = r.i;
117
+ {
118
+ let c = $.indexString(r.s, r.i);
119
+ if (c < utf8.RuneSelf) {
120
+ r.i++;
121
+ return [c, 1, null];
122
+ }
123
+ }
124
+ let ch, size;
125
+ [ch, size] = utf8.DecodeRuneInString($.sliceString(r.s, r.i, undefined));
126
+ r.i += size;
127
+ return [ch, size, null];
128
+ }
129
+ // UnreadRune implements the [io.RuneScanner] interface.
130
+ UnreadRune() {
131
+ const r = this;
132
+ if (r.i <= 0) {
133
+ return errors.New('strings.Reader.UnreadRune: at beginning of string');
134
+ }
135
+ if (r.prevRune < 0) {
136
+ return errors.New('strings.Reader.UnreadRune: previous operation was not ReadRune');
137
+ }
138
+ r.i = r.prevRune;
139
+ r.prevRune = -1;
140
+ return null;
141
+ }
142
+ // Seek implements the [io.Seeker] interface.
143
+ Seek(offset, whence) {
144
+ const r = this;
145
+ r.prevRune = -1;
146
+ let abs = 0;
147
+ switch (whence) {
148
+ case io.SeekStart:
149
+ abs = offset;
150
+ break;
151
+ case io.SeekCurrent:
152
+ abs = r.i + offset;
153
+ break;
154
+ case io.SeekEnd:
155
+ abs = $.len(r.s) + offset;
156
+ break;
157
+ default:
158
+ return [0, errors.New('strings.Reader.Seek: invalid whence')];
159
+ break;
160
+ }
161
+ if (abs < 0) {
162
+ return [0, errors.New('strings.Reader.Seek: negative position')];
163
+ }
164
+ r.i = abs;
165
+ return [abs, null];
166
+ }
167
+ // WriteTo implements the [io.WriterTo] interface.
168
+ WriteTo(w) {
169
+ const r = this;
170
+ r.prevRune = -1;
171
+ if (r.i >= $.len(r.s)) {
172
+ return [0, null];
173
+ }
174
+ let s = $.sliceString(r.s, r.i, undefined);
175
+ let m;
176
+ let err;
177
+ [m, err] = io.WriteString(w, s);
178
+ if (m > $.len(s)) {
179
+ $.panic('strings.Reader.WriteTo: invalid WriteString count');
180
+ }
181
+ r.i += m;
182
+ let n = m;
183
+ if (m != $.len(s) && err == null) {
184
+ err = io.ErrShortWrite;
185
+ }
186
+ return [n, err];
187
+ }
188
+ // Reset resets the [Reader] to be reading from s.
189
+ Reset(s) {
190
+ const r = this;
191
+ r.s = s;
192
+ r.i = 0;
193
+ r.prevRune = -1;
194
+ }
195
+ // Register this type with the runtime type system
196
+ static __typeInfo = $.registerStructType('Reader', new Reader(), [
197
+ {
198
+ name: 'Len',
199
+ args: [],
200
+ returns: [{ type: { kind: $.TypeKind.Basic, name: 'number' } }],
201
+ },
202
+ {
203
+ name: 'Size',
204
+ args: [],
205
+ returns: [{ type: { kind: $.TypeKind.Basic, name: 'number' } }],
206
+ },
207
+ {
208
+ name: 'Read',
209
+ args: [
210
+ {
211
+ name: 'b',
212
+ type: {
213
+ kind: $.TypeKind.Slice,
214
+ elemType: { kind: $.TypeKind.Basic, name: 'number' },
215
+ },
216
+ },
217
+ ],
218
+ returns: [
219
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
220
+ {
221
+ type: {
222
+ kind: $.TypeKind.Interface,
223
+ name: 'GoError',
224
+ methods: [
225
+ {
226
+ name: 'Error',
227
+ args: [],
228
+ returns: [
229
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
230
+ ],
231
+ },
232
+ ],
233
+ },
234
+ },
235
+ ],
236
+ },
237
+ {
238
+ name: 'ReadAt',
239
+ args: [
240
+ {
241
+ name: 'b',
242
+ type: {
243
+ kind: $.TypeKind.Slice,
244
+ elemType: { kind: $.TypeKind.Basic, name: 'number' },
245
+ },
246
+ },
247
+ { name: 'off', type: { kind: $.TypeKind.Basic, name: 'number' } },
248
+ ],
249
+ returns: [
250
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
251
+ {
252
+ type: {
253
+ kind: $.TypeKind.Interface,
254
+ name: 'GoError',
255
+ methods: [
256
+ {
257
+ name: 'Error',
258
+ args: [],
259
+ returns: [
260
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
261
+ ],
262
+ },
263
+ ],
264
+ },
265
+ },
266
+ ],
267
+ },
268
+ {
269
+ name: 'ReadByte',
270
+ args: [],
271
+ returns: [
272
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
273
+ {
274
+ type: {
275
+ kind: $.TypeKind.Interface,
276
+ name: 'GoError',
277
+ methods: [
278
+ {
279
+ name: 'Error',
280
+ args: [],
281
+ returns: [
282
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
283
+ ],
284
+ },
285
+ ],
286
+ },
287
+ },
288
+ ],
289
+ },
290
+ {
291
+ name: 'UnreadByte',
292
+ args: [],
293
+ returns: [
294
+ {
295
+ type: {
296
+ kind: $.TypeKind.Interface,
297
+ name: 'GoError',
298
+ methods: [
299
+ {
300
+ name: 'Error',
301
+ args: [],
302
+ returns: [
303
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
304
+ ],
305
+ },
306
+ ],
307
+ },
308
+ },
309
+ ],
310
+ },
311
+ {
312
+ name: 'ReadRune',
313
+ args: [],
314
+ returns: [
315
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
316
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
317
+ {
318
+ type: {
319
+ kind: $.TypeKind.Interface,
320
+ name: 'GoError',
321
+ methods: [
322
+ {
323
+ name: 'Error',
324
+ args: [],
325
+ returns: [
326
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
327
+ ],
328
+ },
329
+ ],
330
+ },
331
+ },
332
+ ],
333
+ },
334
+ {
335
+ name: 'UnreadRune',
336
+ args: [],
337
+ returns: [
338
+ {
339
+ type: {
340
+ kind: $.TypeKind.Interface,
341
+ name: 'GoError',
342
+ methods: [
343
+ {
344
+ name: 'Error',
345
+ args: [],
346
+ returns: [
347
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
348
+ ],
349
+ },
350
+ ],
351
+ },
352
+ },
353
+ ],
354
+ },
355
+ {
356
+ name: 'Seek',
357
+ args: [
358
+ { name: 'offset', type: { kind: $.TypeKind.Basic, name: 'number' } },
359
+ { name: 'whence', type: { kind: $.TypeKind.Basic, name: 'number' } },
360
+ ],
361
+ returns: [
362
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
363
+ {
364
+ type: {
365
+ kind: $.TypeKind.Interface,
366
+ name: 'GoError',
367
+ methods: [
368
+ {
369
+ name: 'Error',
370
+ args: [],
371
+ returns: [
372
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
373
+ ],
374
+ },
375
+ ],
376
+ },
377
+ },
378
+ ],
379
+ },
380
+ {
381
+ name: 'WriteTo',
382
+ args: [{ name: 'w', type: 'Writer' }],
383
+ returns: [
384
+ { type: { kind: $.TypeKind.Basic, name: 'number' } },
385
+ {
386
+ type: {
387
+ kind: $.TypeKind.Interface,
388
+ name: 'GoError',
389
+ methods: [
390
+ {
391
+ name: 'Error',
392
+ args: [],
393
+ returns: [
394
+ { type: { kind: $.TypeKind.Basic, name: 'string' } },
395
+ ],
396
+ },
397
+ ],
398
+ },
399
+ },
400
+ ],
401
+ },
402
+ {
403
+ name: 'Reset',
404
+ args: [{ name: 's', type: { kind: $.TypeKind.Basic, name: 'string' } }],
405
+ returns: [],
406
+ },
407
+ ], Reader, {
408
+ s: { kind: $.TypeKind.Basic, name: 'string' },
409
+ i: { kind: $.TypeKind.Basic, name: 'number' },
410
+ prevRune: { kind: $.TypeKind.Basic, name: 'number' },
411
+ });
412
+ }
413
+ // NewReader returns a new [Reader] reading from s.
414
+ // It is similar to [bytes.NewBufferString] but more efficient and non-writable.
415
+ export function NewReader(s) {
416
+ return new Reader({ s: s });
417
+ }
418
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../gs/strings/reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAA;AAEjD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAA;AAEnD,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,KAAK,IAAI,MAAM,iCAAiC,CAAA;AAEvD,MAAM,OAAO,MAAM;IACjB,IAAW,CAAC;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC7B,CAAC;IACD,IAAW,CAAC,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IAC9B,CAAC;IAED,wBAAwB;IACxB,IAAW,CAAC;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;IAC7B,CAAC;IACD,IAAW,CAAC,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;IAC9B,CAAC;IAED,iCAAiC;IACjC,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;IACpC,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;IACrC,CAAC;IAEM,OAAO,CAIb;IAED,YAAY,IAA6D;QACvE,IAAI,CAAC,OAAO,GAAG;YACb,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;YACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC,CAAC;SACxC,CAAA;IACH,CAAC;IAEM,KAAK;QACV,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;QAC3B,MAAM,CAAC,OAAO,GAAG;YACf,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;SAChD,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,+DAA+D;IAC/D,UAAU;IACH,GAAG;QACR,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,CAAE,CAAC,CAAC,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACpC,OAAO,CAAC,CAAA;QACV,CAAC;QACD,OAAO,CAAE,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,GAAG,CAAE,CAAC,CAAC,CAAW,CAAA;IACnD,CAAC;IAED,6DAA6D;IAC7D,yEAAyE;IACzE,qEAAqE;IACrE,uBAAuB;IAChB,IAAI;QACT,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAW,CAAA;IAC9B,CAAC;IAED,6CAA6C;IACtC,IAAI,CAAC,CAAa;QACvB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,CAAE,CAAC,CAAC,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;QACvD,CAAE,CAAC,CAAC,IAAI,CAAW,CAAA;QACnB,IAAI,GAAG,GAAc,IAAI,CAAA;QACzB,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,iDAAiD;IAC1C,MAAM,CAAC,CAAa,EAAE,GAAW;QACtC,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,GAAG,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;QACtD,IAAI,GAAG,GAAc,IAAI,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;QACd,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,qDAAqD;IAC9C,QAAQ;QACb,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,IAAI,CAAE,CAAC,CAAC,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,CAAA;QACjC,CAAE,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,wDAAwD;IACjD,UAAU;QACf,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;QACxE,CAAC;QACD,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,CAAE,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qDAAqD;IAC9C,QAAQ;QACb,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,CAAE,CAAC,CAAC,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACpC,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;YAChB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,CAAE,CAAC,QAAQ,GAAG,CAAE,CAAC,CAAW,CAAA;QAC5B,CAAC;YACC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,CAAE,CAAC,CAAC,EAAE,CAAA;gBACN,OAAO,CAAC,CAAW,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,EAAU,EAAE,IAAY,CAC3B;QAAA,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;QAC3E,CAAE,CAAC,CAAC,IAAI,IAAc,CAAA;QACtB,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,wDAAwD;IACjD,UAAU;QACf,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,IAAI,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;QACxE,CAAC;QACD,IAAI,CAAE,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,GAAG,CACf,gEAAgE,CACjE,CAAA;QACH,CAAC;QACD,CAAE,CAAC,CAAC,GAAG,CAAE,CAAC,QAAkB,CAAA;QAC5B,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,6CAA6C;IACtC,IAAI,CAAC,MAAc,EAAE,MAAc;QACxC,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,IAAI,GAAG,GAAW,CAAC,CAAA;QACnB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,EAAE,CAAC,SAAS;gBACf,GAAG,GAAG,MAAM,CAAA;gBACZ,MAAK;YACP,KAAK,EAAE,CAAC,WAAW;gBACjB,GAAG,GAAG,CAAE,CAAC,CAAC,GAAG,MAAM,CAAA;gBACnB,MAAK;YACP,KAAK,EAAE,CAAC,OAAO;gBACb,GAAG,GAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,GAAG,MAAM,CAAA;gBACtC,MAAK;YACP;gBACE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAA;gBAC7D,MAAK;QACT,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,CAAE,CAAC,CAAC,GAAG,GAAG,CAAA;QACV,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,kDAAkD;IAC3C,OAAO,CAAC,CAAY;QACzB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAChB,IAAI,CAAE,CAAC,CAAC,IAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAY,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAC5C,IAAI,CAAS,CAAA;QACb,IAAI,GAAc,CACjB;QAAA,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,CAAC,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAC9D,CAAC;QACD,CAAE,CAAC,CAAC,IAAI,CAAW,CAAA;QACnB,IAAI,CAAC,GAAG,CAAW,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;QACxB,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,CAAS;QACpB,MAAM,CAAC,GAAG,IAAI,CAAA;QACd,CAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACR,CAAE,CAAC,CAAC,GAAG,CAAC,CAAA;QACR,CAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;IAClB,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,kBAAkB,CACtC,QAAQ,EACR,IAAI,MAAM,EAAE,EACZ;QACE;YACE,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;SAChE;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;SAChE;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;wBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACrD;iBACF;aACF;YACD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACJ;oBACE,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK;wBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACrD;iBACF;gBACD,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aAClE;YACD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;aACrE;YACD,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACrC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpD;oBACE,IAAI,EAAE;wBACJ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;wBAC1B,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,EAAE;gCACR,OAAO,EAAE;oCACP,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iCACrD;6BACF;yBACF;qBACF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YACvE,OAAO,EAAE,EAAE;SACZ;KACF,EACD,MAAM,EACN;QACE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7C,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;KACrD,CACF,CAAA;;AAGH,mDAAmD;AACnD,gFAAgF;AAChF,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,106 @@
1
+ import * as $ from '@goscript/builtin/builtin.js';
2
+ import { stringFinder } from './search.js';
3
+ import * as io from '@goscript/io/index.js';
4
+ export declare class Replacer {
5
+ get built(): boolean;
6
+ set built(value: boolean);
7
+ get r(): replacer;
8
+ set r(value: replacer);
9
+ get oldnew(): $.Slice<string>;
10
+ set oldnew(value: $.Slice<string>);
11
+ _fields: {
12
+ built: $.VarRef<boolean>;
13
+ r: $.VarRef<replacer>;
14
+ oldnew: $.VarRef<$.Slice<string>>;
15
+ };
16
+ constructor(init?: Partial<{
17
+ oldnew?: $.Slice<string>;
18
+ built?: boolean;
19
+ r?: replacer;
20
+ }>);
21
+ clone(): Replacer;
22
+ buildOnce(): void;
23
+ build(): replacer;
24
+ Replace(s: string): string;
25
+ WriteString(w: io.Writer, s: string): [number, $.GoError];
26
+ static __typeInfo: $.StructTypeInfo;
27
+ }
28
+ type replacer = null | {
29
+ Replace(s: string): string;
30
+ WriteString(w: io.Writer, s: string): [number, $.GoError];
31
+ };
32
+ export declare function NewReplacer(...oldnew: string[]): Replacer | null;
33
+ declare class trieNode {
34
+ get value(): string;
35
+ set value(value: string);
36
+ get priority(): number;
37
+ set priority(value: number);
38
+ get prefix(): string;
39
+ set prefix(value: string);
40
+ get next(): trieNode | null;
41
+ set next(value: trieNode | null);
42
+ get table(): $.Slice<trieNode | null>;
43
+ set table(value: $.Slice<trieNode | null>);
44
+ _fields: {
45
+ value: $.VarRef<string>;
46
+ priority: $.VarRef<number>;
47
+ prefix: $.VarRef<string>;
48
+ next: $.VarRef<trieNode | null>;
49
+ table: $.VarRef<$.Slice<trieNode | null>>;
50
+ };
51
+ constructor(init?: Partial<{
52
+ next?: trieNode | null;
53
+ prefix?: string;
54
+ priority?: number;
55
+ table?: $.Slice<trieNode | null>;
56
+ value?: string;
57
+ }>);
58
+ clone(): trieNode;
59
+ add(key: string, val: string, priority: number, r: genericReplacer | null): void;
60
+ static __typeInfo: $.StructTypeInfo;
61
+ }
62
+ declare class genericReplacer {
63
+ get root(): trieNode;
64
+ set root(value: trieNode);
65
+ get tableSize(): number;
66
+ set tableSize(value: number);
67
+ get mapping(): number[];
68
+ set mapping(value: number[]);
69
+ _fields: {
70
+ root: $.VarRef<trieNode>;
71
+ tableSize: $.VarRef<number>;
72
+ mapping: $.VarRef<number[]>;
73
+ };
74
+ constructor(init?: Partial<{
75
+ mapping?: number[];
76
+ root?: trieNode;
77
+ tableSize?: number;
78
+ }>);
79
+ clone(): genericReplacer;
80
+ lookup(s: string, ignoreRoot: boolean): [string, number, boolean];
81
+ Replace(s: string): string;
82
+ WriteString(w: io.Writer, s: string): [number, $.GoError];
83
+ static __typeInfo: $.StructTypeInfo;
84
+ }
85
+ export declare function makeGenericReplacer(oldnew: $.Slice<string>): genericReplacer | null;
86
+ export declare function getStringWriter(w: io.Writer): io.StringWriter;
87
+ declare class singleStringReplacer {
88
+ get finder(): stringFinder | null;
89
+ set finder(value: stringFinder | null);
90
+ get value(): string;
91
+ set value(value: string);
92
+ _fields: {
93
+ finder: $.VarRef<stringFinder | null>;
94
+ value: $.VarRef<string>;
95
+ };
96
+ constructor(init?: Partial<{
97
+ finder?: stringFinder | null;
98
+ value?: string;
99
+ }>);
100
+ clone(): singleStringReplacer;
101
+ Replace(s: string): string;
102
+ WriteString(w: io.Writer, s: string): [number, $.GoError];
103
+ static __typeInfo: $.StructTypeInfo;
104
+ }
105
+ export declare function makeSingleStringReplacer(pattern: string, value: string): singleStringReplacer | null;
106
+ export {};