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.
- package/README.md +4 -4
- package/cmd/goscript/cmd_compile.go +0 -3
- package/cmd/goscript/deps.go +11 -0
- package/compiler/analysis.go +298 -55
- package/compiler/assignment.go +2 -2
- package/compiler/builtin_test.go +1 -1
- package/compiler/compiler.go +200 -68
- package/compiler/compiler_test.go +17 -24
- package/compiler/composite-lit.go +32 -8
- package/compiler/decl.go +6 -6
- package/compiler/expr-call.go +170 -15
- package/compiler/expr-selector.go +100 -0
- package/compiler/expr.go +1 -1
- package/compiler/protobuf.go +557 -0
- package/compiler/spec-struct.go +4 -0
- package/compiler/spec-value.go +89 -10
- package/compiler/spec.go +254 -1
- package/compiler/stmt-assign.go +35 -0
- package/compiler/type-assert.go +87 -0
- package/compiler/type.go +4 -1
- package/dist/gs/builtin/builtin.d.ts +20 -1
- package/dist/gs/builtin/builtin.js +95 -4
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +1 -1
- package/dist/gs/builtin/slice.js +21 -2
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/errors/errors.d.ts +5 -6
- package/dist/gs/errors/errors.js.map +1 -1
- package/dist/gs/internal/oserror/errors.d.ts +6 -0
- package/dist/gs/internal/oserror/errors.js +7 -0
- package/dist/gs/internal/oserror/errors.js.map +1 -0
- package/dist/gs/internal/oserror/index.d.ts +1 -0
- package/dist/gs/internal/oserror/index.js +2 -0
- package/dist/gs/internal/oserror/index.js.map +1 -0
- package/dist/gs/io/fs/format.d.ts +3 -0
- package/dist/gs/io/fs/format.js +56 -0
- package/dist/gs/io/fs/format.js.map +1 -0
- package/dist/gs/io/fs/fs.d.ts +79 -0
- package/dist/gs/io/fs/fs.js +200 -0
- package/dist/gs/io/fs/fs.js.map +1 -0
- package/dist/gs/io/fs/glob.d.ts +10 -0
- package/dist/gs/io/fs/glob.js +141 -0
- package/dist/gs/io/fs/glob.js.map +1 -0
- package/dist/gs/io/fs/index.d.ts +8 -0
- package/dist/gs/io/fs/index.js +9 -0
- package/dist/gs/io/fs/index.js.map +1 -0
- package/dist/gs/io/fs/readdir.d.ts +7 -0
- package/dist/gs/io/fs/readdir.js +152 -0
- package/dist/gs/io/fs/readdir.js.map +1 -0
- package/dist/gs/io/fs/readfile.d.ts +6 -0
- package/dist/gs/io/fs/readfile.js +118 -0
- package/dist/gs/io/fs/readfile.js.map +1 -0
- package/dist/gs/io/fs/stat.d.ts +6 -0
- package/dist/gs/io/fs/stat.js +87 -0
- package/dist/gs/io/fs/stat.js.map +1 -0
- package/dist/gs/io/fs/sub.d.ts +6 -0
- package/dist/gs/io/fs/sub.js +172 -0
- package/dist/gs/io/fs/sub.js.map +1 -0
- package/dist/gs/io/fs/walk.d.ts +7 -0
- package/dist/gs/io/fs/walk.js +76 -0
- package/dist/gs/io/fs/walk.js.map +1 -0
- package/dist/gs/io/index.d.ts +1 -0
- package/dist/gs/io/index.js +2 -0
- package/dist/gs/io/index.js.map +1 -0
- package/dist/gs/io/io.d.ts +107 -0
- package/dist/gs/io/io.js +385 -0
- package/dist/gs/io/io.js.map +1 -0
- package/dist/gs/path/index.d.ts +2 -0
- package/dist/gs/path/index.js +3 -0
- package/dist/gs/path/index.js.map +1 -0
- package/dist/gs/path/match.d.ts +6 -0
- package/dist/gs/path/match.js +281 -0
- package/dist/gs/path/match.js.map +1 -0
- package/dist/gs/path/path.d.ts +7 -0
- package/dist/gs/path/path.js +256 -0
- package/dist/gs/path/path.js.map +1 -0
- package/dist/gs/strings/builder.d.ts +18 -0
- package/dist/gs/strings/builder.js +205 -0
- package/dist/gs/strings/builder.js.map +1 -0
- package/dist/gs/strings/clone.d.ts +1 -0
- package/dist/gs/strings/clone.js +16 -0
- package/dist/gs/strings/clone.js.map +1 -0
- package/dist/gs/strings/compare.d.ts +1 -0
- package/dist/gs/strings/compare.js +14 -0
- package/dist/gs/strings/compare.js.map +1 -0
- package/dist/gs/strings/index.d.ts +2 -0
- package/dist/gs/strings/index.js +3 -0
- package/dist/gs/strings/index.js.map +1 -0
- package/dist/gs/strings/iter.d.ts +8 -0
- package/dist/gs/strings/iter.js +160 -0
- package/dist/gs/strings/iter.js.map +1 -0
- package/dist/gs/strings/reader.d.ts +34 -0
- package/dist/gs/strings/reader.js +418 -0
- package/dist/gs/strings/reader.js.map +1 -0
- package/dist/gs/strings/replace.d.ts +106 -0
- package/dist/gs/strings/replace.js +1136 -0
- package/dist/gs/strings/replace.js.map +1 -0
- package/dist/gs/strings/search.d.ts +24 -0
- package/dist/gs/strings/search.js +169 -0
- package/dist/gs/strings/search.js.map +1 -0
- package/dist/gs/strings/strings.d.ts +47 -0
- package/dist/gs/strings/strings.js +418 -0
- package/dist/gs/strings/strings.js.map +1 -0
- package/dist/gs/stringslite/index.d.ts +1 -0
- package/dist/gs/stringslite/index.js +2 -0
- package/dist/gs/stringslite/index.js.map +1 -0
- package/dist/gs/stringslite/strings.d.ts +11 -0
- package/dist/gs/stringslite/strings.js +67 -0
- package/dist/gs/stringslite/strings.js.map +1 -0
- package/dist/gs/sync/index.d.ts +1 -0
- package/dist/gs/sync/index.js +2 -0
- package/dist/gs/sync/index.js.map +1 -0
- package/dist/gs/sync/sync.d.ts +79 -0
- package/dist/gs/sync/sync.js +392 -0
- package/dist/gs/sync/sync.js.map +1 -0
- package/dist/gs/time/time.d.ts +11 -2
- package/dist/gs/time/time.js +337 -12
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unicode/index.d.ts +1 -0
- package/dist/gs/unicode/index.js +2 -0
- package/dist/gs/unicode/index.js.map +1 -0
- package/dist/gs/unicode/unicode.d.ts +105 -0
- package/dist/gs/unicode/unicode.js +332 -0
- package/dist/gs/unicode/unicode.js.map +1 -0
- package/dist/gs/unicode/utf8/index.d.ts +1 -0
- package/dist/gs/unicode/utf8/index.js +3 -0
- package/dist/gs/unicode/utf8/index.js.map +1 -0
- package/dist/gs/unicode/utf8/utf8.d.ts +20 -0
- package/dist/gs/unicode/utf8/utf8.js +196 -0
- package/dist/gs/unicode/utf8/utf8.js.map +1 -0
- package/dist/gs/unsafe/index.d.ts +1 -0
- package/dist/gs/unsafe/index.js +2 -0
- package/dist/gs/unsafe/index.js.map +1 -0
- package/dist/gs/unsafe/unsafe.d.ts +11 -0
- package/dist/gs/unsafe/unsafe.js +44 -0
- package/dist/gs/unsafe/unsafe.js.map +1 -0
- package/go.mod +2 -1
- package/go.sum +6 -2
- package/gs/README.md +6 -0
- package/gs/builtin/builtin.ts +171 -0
- package/gs/builtin/channel.ts +683 -0
- package/gs/builtin/defer.ts +58 -0
- package/gs/builtin/index.ts +1 -0
- package/gs/builtin/io.ts +22 -0
- package/gs/builtin/map.ts +50 -0
- package/gs/builtin/slice.ts +1030 -0
- package/gs/builtin/type.ts +1106 -0
- package/gs/builtin/varRef.ts +25 -0
- package/gs/cmp/godoc.txt +8 -0
- package/gs/cmp/index.ts +29 -0
- package/gs/context/context.ts +401 -0
- package/gs/context/godoc.txt +69 -0
- package/gs/context/index.ts +1 -0
- package/gs/errors/errors.ts +223 -0
- package/gs/errors/godoc.txt +63 -0
- package/gs/errors/index.ts +1 -0
- package/gs/internal/goarch/godoc.txt +39 -0
- package/gs/internal/goarch/index.ts +18 -0
- package/gs/internal/oserror/errors.ts +14 -0
- package/gs/internal/oserror/index.ts +1 -0
- package/gs/io/fs/format.ts +65 -0
- package/gs/io/fs/fs.ts +359 -0
- package/gs/io/fs/glob.ts +167 -0
- package/gs/io/fs/godoc.txt +35 -0
- package/gs/io/fs/index.ts +8 -0
- package/gs/io/fs/readdir.ts +126 -0
- package/gs/io/fs/readfile.ts +77 -0
- package/gs/io/fs/stat.ts +38 -0
- package/gs/io/fs/sub.ts +208 -0
- package/gs/io/fs/walk.ts +89 -0
- package/gs/io/godoc.txt +61 -0
- package/gs/io/index.ts +1 -0
- package/gs/io/io.go +75 -0
- package/gs/io/io.ts +546 -0
- package/gs/iter/godoc.txt +203 -0
- package/gs/iter/index.ts +1 -0
- package/gs/iter/iter.ts +117 -0
- package/gs/math/bits/index.ts +356 -0
- package/gs/math/godoc.txt +76 -0
- package/gs/path/index.ts +2 -0
- package/gs/path/match.ts +307 -0
- package/gs/path/path.ts +301 -0
- package/gs/runtime/godoc.txt +331 -0
- package/gs/runtime/index.ts +1 -0
- package/gs/runtime/runtime.ts +178 -0
- package/gs/slices/godoc.txt +44 -0
- package/gs/slices/index.ts +1 -0
- package/gs/slices/slices.ts +22 -0
- package/gs/strings/builder.test.ts +121 -0
- package/gs/strings/builder.ts +223 -0
- package/gs/strings/clone.test.ts +43 -0
- package/gs/strings/clone.ts +17 -0
- package/gs/strings/compare.test.ts +84 -0
- package/gs/strings/compare.ts +13 -0
- package/gs/strings/godoc.txt +66 -0
- package/gs/strings/index.ts +2 -0
- package/gs/strings/iter.test.ts +343 -0
- package/gs/strings/iter.ts +171 -0
- package/gs/strings/reader.test.ts +242 -0
- package/gs/strings/reader.ts +451 -0
- package/gs/strings/replace.test.ts +181 -0
- package/gs/strings/replace.ts +1310 -0
- package/gs/strings/search.test.ts +214 -0
- package/gs/strings/search.ts +213 -0
- package/gs/strings/strings.test.ts +477 -0
- package/gs/strings/strings.ts +510 -0
- package/gs/stringslite/godoc.txt +17 -0
- package/gs/stringslite/index.ts +1 -0
- package/gs/stringslite/strings.ts +82 -0
- package/gs/sync/godoc.txt +21 -0
- package/gs/sync/index.ts +1 -0
- package/gs/sync/sync.go +64 -0
- package/gs/sync/sync.ts +449 -0
- package/gs/time/godoc.txt +116 -0
- package/gs/time/index.ts +1 -0
- package/gs/time/time.ts +585 -0
- package/gs/unicode/godoc.txt +52 -0
- package/gs/unicode/index.ts +1 -0
- package/gs/unicode/unicode.go +38 -0
- package/gs/unicode/unicode.ts +418 -0
- package/gs/unicode/utf8/godoc.txt +22 -0
- package/gs/unicode/utf8/index.ts +2 -0
- package/gs/unicode/utf8/utf8.ts +227 -0
- package/gs/unsafe/godoc.txt +19 -0
- package/gs/unsafe/index.ts +1 -0
- package/gs/unsafe/unsafe.test.ts +68 -0
- package/gs/unsafe/unsafe.ts +77 -0
- package/package.json +4 -3
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
2
|
+
export class Builder {
|
|
3
|
+
_content = '';
|
|
4
|
+
_addr = null;
|
|
5
|
+
constructor(init) {
|
|
6
|
+
// Simple constructor - no complex initialization needed
|
|
7
|
+
}
|
|
8
|
+
clone() {
|
|
9
|
+
const cloned = new Builder();
|
|
10
|
+
cloned._content = this._content;
|
|
11
|
+
cloned._addr = this._addr;
|
|
12
|
+
return cloned;
|
|
13
|
+
}
|
|
14
|
+
copyCheck() {
|
|
15
|
+
if (this._addr == null) {
|
|
16
|
+
this._addr = this;
|
|
17
|
+
}
|
|
18
|
+
else if (this._addr !== this) {
|
|
19
|
+
$.panic('strings: illegal use of non-zero Builder copied by value');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// String returns the accumulated string.
|
|
23
|
+
String() {
|
|
24
|
+
return this._content;
|
|
25
|
+
}
|
|
26
|
+
// Len returns the number of accumulated bytes; b.Len() == len(b.String()).
|
|
27
|
+
Len() {
|
|
28
|
+
return this._content.length;
|
|
29
|
+
}
|
|
30
|
+
// Cap returns the capacity of the builder's underlying byte slice. It is the
|
|
31
|
+
// total space allocated for the string being built and includes any bytes
|
|
32
|
+
// already written.
|
|
33
|
+
Cap() {
|
|
34
|
+
// For simplicity, return the current length since JavaScript strings are dynamic
|
|
35
|
+
return this._content.length;
|
|
36
|
+
}
|
|
37
|
+
// Reset resets the Builder to be empty.
|
|
38
|
+
Reset() {
|
|
39
|
+
this._addr = null;
|
|
40
|
+
this._content = '';
|
|
41
|
+
}
|
|
42
|
+
// Grow grows b's capacity, if necessary, to guarantee space for
|
|
43
|
+
// another n bytes. After Grow(n), at least n bytes can be written to b
|
|
44
|
+
// without another allocation. If n is negative, Grow panics.
|
|
45
|
+
Grow(n) {
|
|
46
|
+
this.copyCheck();
|
|
47
|
+
if (n < 0) {
|
|
48
|
+
$.panic('strings.Builder.Grow: negative count');
|
|
49
|
+
}
|
|
50
|
+
// JavaScript strings are dynamic, so no need to pre-allocate
|
|
51
|
+
}
|
|
52
|
+
// Write appends the contents of p to b's buffer.
|
|
53
|
+
// Write always returns len(p), nil.
|
|
54
|
+
Write(p) {
|
|
55
|
+
this.copyCheck();
|
|
56
|
+
// Convert byte array to string
|
|
57
|
+
const str = new TextDecoder('utf-8').decode(p);
|
|
58
|
+
this._content += str;
|
|
59
|
+
return [p.length, null];
|
|
60
|
+
}
|
|
61
|
+
// WriteByte appends the byte c to b's buffer.
|
|
62
|
+
// The returned error is always nil.
|
|
63
|
+
WriteByte(c) {
|
|
64
|
+
this.copyCheck();
|
|
65
|
+
this._content += String.fromCharCode(c);
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
// WriteRune appends the UTF-8 encoding of Unicode code point r to b's buffer.
|
|
69
|
+
// It returns the length of r and a nil error.
|
|
70
|
+
WriteRune(r) {
|
|
71
|
+
this.copyCheck();
|
|
72
|
+
const str = String.fromCodePoint(r);
|
|
73
|
+
this._content += str;
|
|
74
|
+
// Return the byte length of the UTF-8 encoding
|
|
75
|
+
const byteLength = new TextEncoder().encode(str).length;
|
|
76
|
+
return [byteLength, null];
|
|
77
|
+
}
|
|
78
|
+
// WriteString appends the contents of s to b's buffer.
|
|
79
|
+
// It returns the length of s and a nil error.
|
|
80
|
+
WriteString(s) {
|
|
81
|
+
this.copyCheck();
|
|
82
|
+
this._content += s;
|
|
83
|
+
return [s.length, null];
|
|
84
|
+
}
|
|
85
|
+
// Register this type with the runtime type system
|
|
86
|
+
static __typeInfo = $.registerStructType('Builder', new Builder(), [
|
|
87
|
+
{
|
|
88
|
+
name: 'String',
|
|
89
|
+
args: [],
|
|
90
|
+
returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }],
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'Len',
|
|
94
|
+
args: [],
|
|
95
|
+
returns: [{ type: { kind: $.TypeKind.Basic, name: 'number' } }],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Cap',
|
|
99
|
+
args: [],
|
|
100
|
+
returns: [{ type: { kind: $.TypeKind.Basic, name: 'number' } }],
|
|
101
|
+
},
|
|
102
|
+
{ name: 'Reset', args: [], returns: [] },
|
|
103
|
+
{
|
|
104
|
+
name: 'Grow',
|
|
105
|
+
args: [{ name: 'n', type: { kind: $.TypeKind.Basic, name: 'number' } }],
|
|
106
|
+
returns: [],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'Write',
|
|
110
|
+
args: [
|
|
111
|
+
{
|
|
112
|
+
name: 'p',
|
|
113
|
+
type: {
|
|
114
|
+
kind: $.TypeKind.Slice,
|
|
115
|
+
elemType: { kind: $.TypeKind.Basic, name: 'number' },
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
returns: [
|
|
120
|
+
{ type: { kind: $.TypeKind.Basic, name: 'number' } },
|
|
121
|
+
{
|
|
122
|
+
type: {
|
|
123
|
+
kind: $.TypeKind.Interface,
|
|
124
|
+
name: 'GoError',
|
|
125
|
+
methods: [
|
|
126
|
+
{
|
|
127
|
+
name: 'Error',
|
|
128
|
+
args: [],
|
|
129
|
+
returns: [
|
|
130
|
+
{ type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: 'WriteByte',
|
|
140
|
+
args: [{ name: 'c', type: { kind: $.TypeKind.Basic, name: 'number' } }],
|
|
141
|
+
returns: [
|
|
142
|
+
{
|
|
143
|
+
type: {
|
|
144
|
+
kind: $.TypeKind.Interface,
|
|
145
|
+
name: 'GoError',
|
|
146
|
+
methods: [
|
|
147
|
+
{
|
|
148
|
+
name: 'Error',
|
|
149
|
+
args: [],
|
|
150
|
+
returns: [
|
|
151
|
+
{ type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: 'WriteRune',
|
|
161
|
+
args: [{ name: 'r', type: { kind: $.TypeKind.Basic, name: 'number' } }],
|
|
162
|
+
returns: [
|
|
163
|
+
{ type: { kind: $.TypeKind.Basic, name: 'number' } },
|
|
164
|
+
{
|
|
165
|
+
type: {
|
|
166
|
+
kind: $.TypeKind.Interface,
|
|
167
|
+
name: 'GoError',
|
|
168
|
+
methods: [
|
|
169
|
+
{
|
|
170
|
+
name: 'Error',
|
|
171
|
+
args: [],
|
|
172
|
+
returns: [
|
|
173
|
+
{ type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: 'WriteString',
|
|
183
|
+
args: [{ name: 's', type: { kind: $.TypeKind.Basic, name: 'string' } }],
|
|
184
|
+
returns: [
|
|
185
|
+
{ type: { kind: $.TypeKind.Basic, name: 'number' } },
|
|
186
|
+
{
|
|
187
|
+
type: {
|
|
188
|
+
kind: $.TypeKind.Interface,
|
|
189
|
+
name: 'GoError',
|
|
190
|
+
methods: [
|
|
191
|
+
{
|
|
192
|
+
name: 'Error',
|
|
193
|
+
args: [],
|
|
194
|
+
returns: [
|
|
195
|
+
{ type: { kind: $.TypeKind.Basic, name: 'string' } },
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
},
|
|
203
|
+
], Builder, {});
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../gs/strings/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Clone(s: string): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Clone returns a fresh copy of s.
|
|
2
|
+
// It guarantees to make a copy of s into a new allocation,
|
|
3
|
+
// which can be important when retaining only a small substring
|
|
4
|
+
// of a much larger string. Using Clone can help such programs
|
|
5
|
+
// use less memory. Of course, since using Clone makes a copy,
|
|
6
|
+
// overuse of Clone can make programs use more memory.
|
|
7
|
+
// Clone should typically be used only rarely, and only when
|
|
8
|
+
// profiling indicates that it is needed.
|
|
9
|
+
// For strings of length zero the string "" will be returned
|
|
10
|
+
// and no allocation is made.
|
|
11
|
+
export function Clone(s) {
|
|
12
|
+
// In JavaScript, strings are immutable, so we can just return the string
|
|
13
|
+
// But to match Go semantics, we'll create a new string
|
|
14
|
+
return String(s);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../gs/strings/clone.ts"],"names":[],"mappings":"AAEA,mCAAmC;AACnC,2DAA2D;AAC3D,+DAA+D;AAC/D,8DAA8D;AAC9D,8DAA8D;AAC9D,sDAAsD;AACtD,4DAA4D;AAC5D,yCAAyC;AACzC,4DAA4D;AAC5D,6BAA6B;AAC7B,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,yEAAyE;IACzE,uDAAuD;IACvD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Compare(a: string, b: string): number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Compare returns an integer comparing two strings lexicographically.
|
|
2
|
+
// The result will be 0 if a == b, -1 if a < b, and +1 if a > b.
|
|
3
|
+
//
|
|
4
|
+
// Compare is included only for symmetry with package bytes.
|
|
5
|
+
// It is usually clearer and always faster to use the built-in
|
|
6
|
+
// string comparison operators ==, <, >, and so on.
|
|
7
|
+
export function Compare(a, b) {
|
|
8
|
+
if (a < b)
|
|
9
|
+
return -1;
|
|
10
|
+
if (a > b)
|
|
11
|
+
return 1;
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../gs/strings/compare.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,gEAAgE;AAChE,EAAE;AACF,4DAA4D;AAC5D,8DAA8D;AAC9D,mDAAmD;AACnD,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,CAAA;IACpB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAA;IACnB,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/strings/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as iter from '@goscript/iter/index.js';
|
|
2
|
+
export declare function Lines(s: string): iter.Seq<string>;
|
|
3
|
+
export declare function explodeSeq(s: string): iter.Seq<string>;
|
|
4
|
+
export declare function splitSeq(s: string, sep: string, sepSave: number): iter.Seq<string>;
|
|
5
|
+
export declare function SplitSeq(s: string, sep: string): iter.Seq<string>;
|
|
6
|
+
export declare function SplitAfterSeq(s: string, sep: string): iter.Seq<string>;
|
|
7
|
+
export declare function FieldsSeq(s: string): iter.Seq<string>;
|
|
8
|
+
export declare function FieldsFuncSeq(s: string, f: ((p0: number) => boolean) | null): iter.Seq<string>;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
2
|
+
import { Index, IndexByte } from './strings.js';
|
|
3
|
+
import * as unicode from '@goscript/unicode/index.js';
|
|
4
|
+
import * as utf8 from '@goscript/unicode/utf8/index.js';
|
|
5
|
+
// ASCII space characters lookup map
|
|
6
|
+
const asciiSpace = {
|
|
7
|
+
9: true, // \t
|
|
8
|
+
10: true, // \n
|
|
9
|
+
11: true, // \v
|
|
10
|
+
12: true, // \f
|
|
11
|
+
13: true, // \r
|
|
12
|
+
32: true, // space
|
|
13
|
+
};
|
|
14
|
+
// Lines returns an iterator over the newline-terminated lines in the string s.
|
|
15
|
+
// The lines yielded by the iterator include their terminating newlines.
|
|
16
|
+
// If s is empty, the iterator yields no lines at all.
|
|
17
|
+
// If s does not end in a newline, the final yielded line will not end in a newline.
|
|
18
|
+
// It returns a single-use iterator.
|
|
19
|
+
export function Lines(s) {
|
|
20
|
+
return (_yield) => {
|
|
21
|
+
for (; $.len(s) > 0;) {
|
|
22
|
+
let line = '';
|
|
23
|
+
{
|
|
24
|
+
let i = IndexByte(s, 10);
|
|
25
|
+
if (i >= 0) {
|
|
26
|
+
;
|
|
27
|
+
[line, s] = [
|
|
28
|
+
$.sliceString(s, undefined, i + 1),
|
|
29
|
+
$.sliceString(s, i + 1, undefined),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
;
|
|
34
|
+
[line, s] = [s, ''];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!_yield(line)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// explodeSeq returns an iterator over the runes in s.
|
|
45
|
+
export function explodeSeq(s) {
|
|
46
|
+
return (_yield) => {
|
|
47
|
+
for (; $.len(s) > 0;) {
|
|
48
|
+
let [, size] = utf8.DecodeRuneInString(s);
|
|
49
|
+
if (!_yield($.sliceString(s, undefined, size))) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
s = $.sliceString(s, size, undefined);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// splitSeq is SplitSeq or SplitAfterSeq, configured by how many
|
|
57
|
+
// bytes of sep to include in the results (none or all).
|
|
58
|
+
export function splitSeq(s, sep, sepSave) {
|
|
59
|
+
if ($.len(sep) == 0) {
|
|
60
|
+
return explodeSeq(s);
|
|
61
|
+
}
|
|
62
|
+
return (_yield) => {
|
|
63
|
+
for (;;) {
|
|
64
|
+
let i = Index(s, sep);
|
|
65
|
+
if (i < 0) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
let frag = $.sliceString(s, undefined, i + sepSave);
|
|
69
|
+
if (!_yield(frag)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
s = $.sliceString(s, i + $.len(sep), undefined);
|
|
73
|
+
}
|
|
74
|
+
_yield(s);
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// SplitSeq returns an iterator over all substrings of s separated by sep.
|
|
78
|
+
// The iterator yields the same strings that would be returned by [Split](s, sep),
|
|
79
|
+
// but without constructing the slice.
|
|
80
|
+
// It returns a single-use iterator.
|
|
81
|
+
export function SplitSeq(s, sep) {
|
|
82
|
+
return splitSeq(s, sep, 0);
|
|
83
|
+
}
|
|
84
|
+
// SplitAfterSeq returns an iterator over substrings of s split after each instance of sep.
|
|
85
|
+
// The iterator yields the same strings that would be returned by [SplitAfter](s, sep),
|
|
86
|
+
// but without constructing the slice.
|
|
87
|
+
// It returns a single-use iterator.
|
|
88
|
+
export function SplitAfterSeq(s, sep) {
|
|
89
|
+
return splitSeq(s, sep, $.len(sep));
|
|
90
|
+
}
|
|
91
|
+
// FieldsSeq returns an iterator over substrings of s split around runs of
|
|
92
|
+
// whitespace characters, as defined by [unicode.IsSpace].
|
|
93
|
+
// The iterator yields the same strings that would be returned by [Fields](s),
|
|
94
|
+
// but without constructing the slice.
|
|
95
|
+
export function FieldsSeq(s) {
|
|
96
|
+
return (_yield) => {
|
|
97
|
+
let start = -1;
|
|
98
|
+
for (let i = 0; i < $.len(s);) {
|
|
99
|
+
let size = 1;
|
|
100
|
+
let r = $.indexString(s, i);
|
|
101
|
+
let isSpace = asciiSpace[$.indexString(s, i)] === true;
|
|
102
|
+
if (r >= utf8.RuneSelf) {
|
|
103
|
+
;
|
|
104
|
+
[r, size] = utf8.DecodeRuneInString($.sliceString(s, i, undefined));
|
|
105
|
+
isSpace = unicode.IsSpace(r);
|
|
106
|
+
}
|
|
107
|
+
if (isSpace) {
|
|
108
|
+
if (start >= 0) {
|
|
109
|
+
if (!_yield($.sliceString(s, start, i))) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
start = -1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (start < 0) {
|
|
116
|
+
start = i;
|
|
117
|
+
}
|
|
118
|
+
i += size;
|
|
119
|
+
}
|
|
120
|
+
if (start >= 0) {
|
|
121
|
+
_yield($.sliceString(s, start, undefined));
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// FieldsFuncSeq returns an iterator over substrings of s split around runs of
|
|
126
|
+
// Unicode code points satisfying f(c).
|
|
127
|
+
// The iterator yields the same strings that would be returned by [FieldsFunc](s),
|
|
128
|
+
// but without constructing the slice.
|
|
129
|
+
export function FieldsFuncSeq(s, f) {
|
|
130
|
+
return (_yield) => {
|
|
131
|
+
if (f === null) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
let start = -1;
|
|
135
|
+
for (let i = 0; i < $.len(s);) {
|
|
136
|
+
let size = 1;
|
|
137
|
+
let r = $.indexString(s, i);
|
|
138
|
+
if (r >= utf8.RuneSelf) {
|
|
139
|
+
;
|
|
140
|
+
[r, size] = utf8.DecodeRuneInString($.sliceString(s, i, undefined));
|
|
141
|
+
}
|
|
142
|
+
if (f(r)) {
|
|
143
|
+
if (start >= 0) {
|
|
144
|
+
if (!_yield($.sliceString(s, start, i))) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
start = -1;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else if (start < 0) {
|
|
151
|
+
start = i;
|
|
152
|
+
}
|
|
153
|
+
i += size;
|
|
154
|
+
}
|
|
155
|
+
if (start >= 0) {
|
|
156
|
+
_yield($.sliceString(s, start, undefined));
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=iter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iter.js","sourceRoot":"","sources":["../../../gs/strings/iter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
2
|
+
import * as io from '@goscript/io/index.js';
|
|
3
|
+
export declare class Reader {
|
|
4
|
+
get s(): string;
|
|
5
|
+
set s(value: string);
|
|
6
|
+
get i(): number;
|
|
7
|
+
set i(value: number);
|
|
8
|
+
get prevRune(): number;
|
|
9
|
+
set prevRune(value: number);
|
|
10
|
+
_fields: {
|
|
11
|
+
s: $.VarRef<string>;
|
|
12
|
+
i: $.VarRef<number>;
|
|
13
|
+
prevRune: $.VarRef<number>;
|
|
14
|
+
};
|
|
15
|
+
constructor(init?: Partial<{
|
|
16
|
+
i?: number;
|
|
17
|
+
prevRune?: number;
|
|
18
|
+
s?: string;
|
|
19
|
+
}>);
|
|
20
|
+
clone(): Reader;
|
|
21
|
+
Len(): number;
|
|
22
|
+
Size(): number;
|
|
23
|
+
Read(b: Uint8Array): [number, $.GoError];
|
|
24
|
+
ReadAt(b: Uint8Array, off: number): [number, $.GoError];
|
|
25
|
+
ReadByte(): [number, $.GoError];
|
|
26
|
+
UnreadByte(): $.GoError;
|
|
27
|
+
ReadRune(): [number, number, $.GoError];
|
|
28
|
+
UnreadRune(): $.GoError;
|
|
29
|
+
Seek(offset: number, whence: number): [number, $.GoError];
|
|
30
|
+
WriteTo(w: io.Writer): [number, $.GoError];
|
|
31
|
+
Reset(s: string): void;
|
|
32
|
+
static __typeInfo: $.StructTypeInfo;
|
|
33
|
+
}
|
|
34
|
+
export declare function NewReader(s: string): Reader | null;
|