goscript 0.0.25 → 0.0.28
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 +259 -55
- package/compiler/assignment.go +2 -2
- package/compiler/builtin_test.go +1 -1
- package/compiler/compiler.go +201 -49
- package/compiler/compiler_test.go +53 -0
- package/compiler/composite-lit.go +32 -8
- package/compiler/decl.go +6 -6
- package/compiler/expr-call.go +83 -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 +11 -3
- package/compiler/spec.go +18 -1
- package/compiler/stmt-assign.go +35 -0
- package/compiler/type-assert.go +87 -0
- package/compiler/type.go +5 -2
- package/dist/gs/builtin/builtin.d.ts +19 -1
- package/dist/gs/builtin/builtin.js +85 -5
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/channel.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +1 -1
- package/dist/gs/builtin/slice.js +59 -26
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/cmp/index.js.map +1 -1
- package/dist/gs/context/context.d.ts +1 -1
- package/dist/gs/context/context.js +20 -11
- package/dist/gs/context/context.js.map +1 -1
- package/dist/gs/errors/errors.d.ts +7 -0
- package/dist/gs/errors/errors.js +190 -0
- package/dist/gs/errors/errors.js.map +1 -0
- package/dist/gs/errors/index.d.ts +1 -0
- package/dist/gs/errors/index.js +2 -0
- package/dist/gs/errors/index.js.map +1 -0
- package/dist/gs/internal/goarch/index.js +1 -1
- package/dist/gs/internal/goarch/index.js.map +1 -1
- 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/iter/iter.js.map +1 -1
- package/dist/gs/math/bits/index.js +34 -32
- package/dist/gs/math/bits/index.js.map +1 -1
- package/dist/gs/runtime/runtime.d.ts +1 -0
- package/dist/gs/runtime/runtime.js +15 -18
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/slices/slices.d.ts +1 -1
- package/dist/gs/slices/slices.js +1 -1
- package/dist/gs/slices/slices.js.map +1 -1
- 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.js +7 -7
- 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 +158 -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/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/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 +243 -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.md +116 -0
- package/gs/time/godoc.txt +116 -0
- package/gs/time/index.ts +1 -0
- package/gs/time/time.ts +272 -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 +6 -4
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
// Runtime constants for the JavaScript/WebAssembly target
|
|
2
|
-
export const GOOS =
|
|
3
|
-
export const GOARCH =
|
|
2
|
+
export const GOOS = 'js';
|
|
3
|
+
export const GOARCH = 'wasm';
|
|
4
4
|
// Version returns the Go version as a string
|
|
5
|
+
export const GOVERSION = 'go1.24.3';
|
|
5
6
|
export function Version() {
|
|
6
|
-
return
|
|
7
|
+
return GOVERSION;
|
|
7
8
|
}
|
|
8
9
|
// GOMAXPROCS sets the maximum number of operating system threads
|
|
9
|
-
//
|
|
10
|
+
//
|
|
11
|
+
// JavaScript is single threaded so this always returns 1.
|
|
10
12
|
export function GOMAXPROCS(n) {
|
|
11
|
-
// In
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
// Return current "setting" (number of logical CPUs)
|
|
15
|
-
return NumCPU();
|
|
16
|
-
}
|
|
17
|
-
// In a real implementation, we would set the max procs
|
|
18
|
-
// For JS/browser, we just return the requested value
|
|
19
|
-
return n;
|
|
13
|
+
// In a full implementation, we would set the max procs
|
|
14
|
+
// Since JavaScript only supports 1, just return 1.
|
|
15
|
+
return 1;
|
|
20
16
|
}
|
|
21
|
-
// NumCPU returns the number of logical CPUs
|
|
17
|
+
// NumCPU returns the number of logical CPUs on the system.
|
|
22
18
|
export function NumCPU() {
|
|
23
19
|
// In browser environment, use navigator.hardwareConcurrency if available
|
|
24
20
|
if (typeof navigator !== 'undefined' && navigator.hardwareConcurrency) {
|
|
@@ -33,6 +29,7 @@ export function GC() {
|
|
|
33
29
|
// In JavaScript, we can't force garbage collection
|
|
34
30
|
// Some engines have gc() function in development, but it's not standard
|
|
35
31
|
if (typeof globalThis.gc === 'function') {
|
|
32
|
+
;
|
|
36
33
|
globalThis.gc();
|
|
37
34
|
}
|
|
38
35
|
// Otherwise, this is a no-op
|
|
@@ -40,7 +37,7 @@ export function GC() {
|
|
|
40
37
|
// Gosched yields the processor, allowing other goroutines to run.
|
|
41
38
|
// In JavaScript, we can use setTimeout(0) or queueMicrotask for similar effect
|
|
42
39
|
export function Gosched() {
|
|
43
|
-
return new Promise(resolve => {
|
|
40
|
+
return new Promise((resolve) => {
|
|
44
41
|
queueMicrotask(resolve);
|
|
45
42
|
});
|
|
46
43
|
}
|
|
@@ -66,7 +63,7 @@ export function Caller(skip) {
|
|
|
66
63
|
// In JavaScript, we can use Error stack trace, but it's limited
|
|
67
64
|
// Return dummy values for goscript compatibility
|
|
68
65
|
const pc = 0; // program counter (not meaningful in JS)
|
|
69
|
-
const file =
|
|
66
|
+
const file = 'unknown';
|
|
70
67
|
const line = 0;
|
|
71
68
|
const ok = false; // indicate we don't have real stack info
|
|
72
69
|
return [pc, file, line, ok];
|
|
@@ -74,7 +71,7 @@ export function Caller(skip) {
|
|
|
74
71
|
// Stack returns a formatted stack trace of the calling goroutine.
|
|
75
72
|
// In JavaScript, we use Error.stack
|
|
76
73
|
export function Stack() {
|
|
77
|
-
const stack = new Error().stack ||
|
|
74
|
+
const stack = new Error().stack || 'stack trace unavailable';
|
|
78
75
|
const encoder = new TextEncoder();
|
|
79
76
|
return encoder.encode(stack);
|
|
80
77
|
}
|
|
@@ -144,7 +141,7 @@ export class PanicError {
|
|
|
144
141
|
// SetFinalizer sets the finalizer associated with obj to the provided finalizer function.
|
|
145
142
|
// In goscript/TypeScript environment, finalizers are not supported, so this throws an error.
|
|
146
143
|
export function SetFinalizer(obj, finalizer) {
|
|
147
|
-
throw new Error(
|
|
144
|
+
throw new Error('runtime.SetFinalizer is not supported in goscript TypeScript environment');
|
|
148
145
|
}
|
|
149
146
|
// KeepAlive keeps obj reachable until the point where KeepAlive is called
|
|
150
147
|
export function KeepAlive(obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/slices/slices.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// TypeScript implementation of Go's slices package
|
|
2
|
-
import * as $ from
|
|
2
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
3
3
|
/**
|
|
4
4
|
* All returns an iterator over index-value pairs in the slice.
|
|
5
5
|
* This is equivalent to Go's slices.All function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"slices.js","sourceRoot":"","sources":["../../../gs/slices/slices.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CACjB,CAAa;IAEb,OAAO,UAAU,MAA4C;QAC3D,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,KAAK,GAAI,CAAS,CAAC,CAAC,CAAM,CAAA,CAAC,2CAA2C;YAC5E,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/builtin.js';
|
|
2
|
+
export declare class Builder {
|
|
3
|
+
private _content;
|
|
4
|
+
private _addr;
|
|
5
|
+
constructor(init?: Partial<{}>);
|
|
6
|
+
clone(): Builder;
|
|
7
|
+
private copyCheck;
|
|
8
|
+
String(): string;
|
|
9
|
+
Len(): number;
|
|
10
|
+
Cap(): number;
|
|
11
|
+
Reset(): void;
|
|
12
|
+
Grow(n: number): void;
|
|
13
|
+
Write(p: Uint8Array): [number, $.GoError];
|
|
14
|
+
WriteByte(c: number): $.GoError;
|
|
15
|
+
WriteRune(r: number): [number, $.GoError];
|
|
16
|
+
WriteString(s: string): [number, $.GoError];
|
|
17
|
+
static __typeInfo: $.StructTypeInfo;
|
|
18
|
+
}
|
|
@@ -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;
|