goscript 0.0.34 → 0.0.35
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/compiler/analysis.go +28 -20
- package/compiler/analysis_test.go +14 -0
- package/compiler/assignment.go +19 -7
- package/compiler/compiler.go +15 -99
- package/compiler/composite-lit.go +60 -17
- package/compiler/decl.go +1 -1
- package/compiler/expr-call.go +233 -35
- package/compiler/expr-selector.go +28 -2
- package/compiler/expr.go +13 -37
- package/compiler/lit.go +111 -2
- package/compiler/primitive.go +6 -6
- package/compiler/protobuf.go +0 -5
- package/compiler/sanitize.go +101 -0
- package/compiler/spec-value.go +25 -18
- package/compiler/stmt-assign.go +22 -1
- package/compiler/stmt.go +26 -9
- package/compiler/type.go +3 -3
- package/dist/gs/builtin/builtin.d.ts +3 -2
- package/dist/gs/builtin/builtin.js +2 -1
- package/dist/gs/builtin/builtin.js.map +1 -1
- package/dist/gs/builtin/map.js.map +1 -1
- package/dist/gs/builtin/slice.d.ts +7 -1
- package/dist/gs/builtin/slice.js +112 -22
- package/dist/gs/builtin/slice.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
- package/dist/gs/github.com/pkg/errors/errors.js +232 -0
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
- package/dist/gs/github.com/pkg/errors/go113.js +34 -0
- package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
- package/dist/gs/github.com/pkg/errors/index.js +4 -0
- package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
- package/dist/gs/github.com/pkg/errors/stack.js +111 -0
- package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
- package/dist/gs/maps/index.d.ts +2 -2
- package/dist/gs/maps/index.js +2 -2
- package/dist/gs/maps/index.js.map +1 -1
- package/dist/gs/maps/iter.d.ts +7 -0
- package/dist/gs/maps/iter.js +57 -0
- package/dist/gs/maps/iter.js.map +1 -0
- package/dist/gs/maps/maps.d.ts +7 -0
- package/dist/gs/maps/maps.js +67 -0
- package/dist/gs/maps/maps.js.map +1 -0
- package/dist/gs/math/abs.gs.d.ts +1 -0
- package/dist/gs/math/abs.gs.js +10 -0
- package/dist/gs/math/abs.gs.js.map +1 -0
- package/dist/gs/math/acosh.gs.d.ts +2 -0
- package/dist/gs/math/acosh.gs.js +14 -0
- package/dist/gs/math/acosh.gs.js.map +1 -0
- package/dist/gs/math/asin.gs.d.ts +4 -0
- package/dist/gs/math/asin.gs.js +24 -0
- package/dist/gs/math/asin.gs.js.map +1 -0
- package/dist/gs/math/asinh.gs.d.ts +2 -0
- package/dist/gs/math/asinh.gs.js +14 -0
- package/dist/gs/math/asinh.gs.js.map +1 -0
- package/dist/gs/math/atan.gs.d.ts +4 -0
- package/dist/gs/math/atan.gs.js +22 -0
- package/dist/gs/math/atan.gs.js.map +1 -0
- package/dist/gs/math/atan2.gs.d.ts +2 -0
- package/dist/gs/math/atan2.gs.js +30 -0
- package/dist/gs/math/atan2.gs.js.map +1 -0
- package/dist/gs/math/atanh.gs.d.ts +2 -0
- package/dist/gs/math/atanh.gs.js +16 -0
- package/dist/gs/math/atanh.gs.js.map +1 -0
- package/dist/gs/math/bits.gs.d.ts +5 -0
- package/dist/gs/math/bits.gs.js +46 -0
- package/dist/gs/math/bits.gs.js.map +1 -0
- package/dist/gs/math/cbrt.gs.d.ts +2 -0
- package/dist/gs/math/cbrt.gs.js +14 -0
- package/dist/gs/math/cbrt.gs.js.map +1 -0
- package/dist/gs/math/const.gs.d.ts +30 -0
- package/dist/gs/math/const.gs.js +61 -0
- package/dist/gs/math/const.gs.js.map +1 -0
- package/dist/gs/math/copysign.gs.d.ts +1 -0
- package/dist/gs/math/copysign.gs.js +20 -0
- package/dist/gs/math/copysign.gs.js.map +1 -0
- package/dist/gs/math/dim.gs.d.ts +5 -0
- package/dist/gs/math/dim.gs.js +69 -0
- package/dist/gs/math/dim.gs.js.map +1 -0
- package/dist/gs/math/erf.gs.d.ts +4 -0
- package/dist/gs/math/erf.gs.js +336 -0
- package/dist/gs/math/erf.gs.js.map +1 -0
- package/dist/gs/math/erfinv.gs.d.ts +2 -0
- package/dist/gs/math/erfinv.gs.js +118 -0
- package/dist/gs/math/erfinv.gs.js.map +1 -0
- package/dist/gs/math/exp.gs.d.ts +5 -0
- package/dist/gs/math/exp.gs.js +30 -0
- package/dist/gs/math/exp.gs.js.map +1 -0
- package/dist/gs/math/expm1.gs.d.ts +2 -0
- package/dist/gs/math/expm1.gs.js +17 -0
- package/dist/gs/math/expm1.gs.js.map +1 -0
- package/dist/gs/math/floor.gs.d.ts +8 -0
- package/dist/gs/math/floor.gs.js +75 -0
- package/dist/gs/math/floor.gs.js.map +1 -0
- package/dist/gs/math/fma.gs.d.ts +1 -0
- package/dist/gs/math/fma.gs.js +8 -0
- package/dist/gs/math/fma.gs.js.map +1 -0
- package/dist/gs/math/frexp.gs.d.ts +2 -0
- package/dist/gs/math/frexp.gs.js +28 -0
- package/dist/gs/math/frexp.gs.js.map +1 -0
- package/dist/gs/math/gamma.gs.d.ts +3 -0
- package/dist/gs/math/gamma.gs.js +149 -0
- package/dist/gs/math/gamma.gs.js.map +1 -0
- package/dist/gs/math/hypot.gs.d.ts +2 -0
- package/dist/gs/math/hypot.gs.js +16 -0
- package/dist/gs/math/hypot.gs.js.map +1 -0
- package/dist/gs/math/index.d.ts +44 -0
- package/dist/gs/math/index.js +45 -0
- package/dist/gs/math/index.js.map +1 -0
- package/dist/gs/math/j0.gs.d.ts +4 -0
- package/dist/gs/math/j0.gs.js +228 -0
- package/dist/gs/math/j0.gs.js.map +1 -0
- package/dist/gs/math/j1.gs.d.ts +4 -0
- package/dist/gs/math/j1.gs.js +211 -0
- package/dist/gs/math/j1.gs.js.map +1 -0
- package/dist/gs/math/jn.gs.d.ts +2 -0
- package/dist/gs/math/jn.gs.js +412 -0
- package/dist/gs/math/jn.gs.js.map +1 -0
- package/dist/gs/math/ldexp.gs.d.ts +2 -0
- package/dist/gs/math/ldexp.gs.js +20 -0
- package/dist/gs/math/ldexp.gs.js.map +1 -0
- package/dist/gs/math/lgamma.gs.d.ts +2 -0
- package/dist/gs/math/lgamma.gs.js +243 -0
- package/dist/gs/math/lgamma.gs.js.map +1 -0
- package/dist/gs/math/log.gs.d.ts +2 -0
- package/dist/gs/math/log.gs.js +16 -0
- package/dist/gs/math/log.gs.js.map +1 -0
- package/dist/gs/math/log10.gs.d.ts +4 -0
- package/dist/gs/math/log10.gs.js +17 -0
- package/dist/gs/math/log10.gs.js.map +1 -0
- package/dist/gs/math/log1p.gs.d.ts +2 -0
- package/dist/gs/math/log1p.gs.js +17 -0
- package/dist/gs/math/log1p.gs.js.map +1 -0
- package/dist/gs/math/logb.gs.d.ts +3 -0
- package/dist/gs/math/logb.gs.js +43 -0
- package/dist/gs/math/logb.gs.js.map +1 -0
- package/dist/gs/math/mod.gs.d.ts +2 -0
- package/dist/gs/math/mod.gs.js +26 -0
- package/dist/gs/math/mod.gs.js.map +1 -0
- package/dist/gs/math/modf.gs.d.ts +2 -0
- package/dist/gs/math/modf.gs.js +24 -0
- package/dist/gs/math/modf.gs.js.map +1 -0
- package/dist/gs/math/nextafter.gs.d.ts +2 -0
- package/dist/gs/math/nextafter.gs.js +66 -0
- package/dist/gs/math/nextafter.gs.js.map +1 -0
- package/dist/gs/math/pow.gs.d.ts +3 -0
- package/dist/gs/math/pow.gs.js +40 -0
- package/dist/gs/math/pow.gs.js.map +1 -0
- package/dist/gs/math/pow10.gs.d.ts +1 -0
- package/dist/gs/math/pow10.gs.js +14 -0
- package/dist/gs/math/pow10.gs.js.map +1 -0
- package/dist/gs/math/remainder.gs.d.ts +2 -0
- package/dist/gs/math/remainder.gs.js +25 -0
- package/dist/gs/math/remainder.gs.js.map +1 -0
- package/dist/gs/math/signbit.gs.d.ts +1 -0
- package/dist/gs/math/signbit.gs.js +5 -0
- package/dist/gs/math/signbit.gs.js.map +1 -0
- package/dist/gs/math/sin.gs.d.ts +4 -0
- package/dist/gs/math/sin.gs.js +29 -0
- package/dist/gs/math/sin.gs.js.map +1 -0
- package/dist/gs/math/sincos.gs.d.ts +1 -0
- package/dist/gs/math/sincos.gs.js +11 -0
- package/dist/gs/math/sincos.gs.js.map +1 -0
- package/dist/gs/math/sinh.gs.d.ts +4 -0
- package/dist/gs/math/sinh.gs.js +27 -0
- package/dist/gs/math/sinh.gs.js.map +1 -0
- package/dist/gs/math/sqrt.gs.d.ts +2 -0
- package/dist/gs/math/sqrt.gs.js +15 -0
- package/dist/gs/math/sqrt.gs.js.map +1 -0
- package/dist/gs/math/tan.gs.d.ts +2 -0
- package/dist/gs/math/tan.gs.js +17 -0
- package/dist/gs/math/tan.gs.js.map +1 -0
- package/dist/gs/math/tanh.gs.d.ts +2 -0
- package/dist/gs/math/tanh.gs.js +17 -0
- package/dist/gs/math/tanh.gs.js.map +1 -0
- package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
- package/dist/gs/math/trig_reduce.gs.js +62 -0
- package/dist/gs/math/trig_reduce.gs.js.map +1 -0
- package/dist/gs/math/unsafe.gs.d.ts +4 -0
- package/dist/gs/math/unsafe.gs.js +47 -0
- package/dist/gs/math/unsafe.gs.js.map +1 -0
- package/dist/gs/strconv/atob.gs.d.ts +4 -0
- package/dist/gs/strconv/atob.gs.js +42 -0
- package/dist/gs/strconv/atob.gs.js.map +1 -0
- package/dist/gs/strconv/atof.gs.d.ts +2 -0
- package/dist/gs/strconv/atof.gs.js +51 -0
- package/dist/gs/strconv/atof.gs.js.map +1 -0
- package/dist/gs/strconv/atoi.gs.d.ts +33 -0
- package/dist/gs/strconv/atoi.gs.js +200 -0
- package/dist/gs/strconv/atoi.gs.js.map +1 -0
- package/dist/gs/strconv/doc.gs.d.ts +1 -0
- package/dist/gs/strconv/doc.gs.js +2 -0
- package/dist/gs/strconv/doc.gs.js.map +1 -0
- package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
- package/dist/gs/strconv/ftoa.gs.js +58 -0
- package/dist/gs/strconv/ftoa.gs.js.map +1 -0
- package/dist/gs/strconv/index.d.ts +6 -0
- package/dist/gs/strconv/index.js +7 -0
- package/dist/gs/strconv/index.js.map +1 -0
- package/dist/gs/strconv/itoa.gs.d.ts +6 -0
- package/dist/gs/strconv/itoa.gs.js +37 -0
- package/dist/gs/strconv/itoa.gs.js.map +1 -0
- package/dist/gs/strconv/quote.gs.d.ts +19 -0
- package/dist/gs/strconv/quote.gs.js +217 -0
- package/dist/gs/strconv/quote.gs.js.map +1 -0
- package/dist/gs/strings/index.d.ts +3 -0
- package/dist/gs/strings/index.js +4 -0
- package/dist/gs/strings/index.js.map +1 -1
- package/dist/gs/strings/replace.d.ts +0 -74
- package/dist/gs/strings/replace.js +6 -204
- package/dist/gs/strings/replace.js.map +1 -1
- package/dist/gs/strings/search.d.ts +0 -1
- package/dist/gs/strings/search.js +0 -21
- package/dist/gs/strings/search.js.map +1 -1
- package/gs/builtin/builtin.ts +9 -7
- package/gs/builtin/map.ts +5 -1
- package/gs/builtin/slice.ts +152 -24
- package/gs/github.com/pkg/errors/errors.ts +307 -0
- package/gs/github.com/pkg/errors/go113.ts +39 -0
- package/gs/github.com/pkg/errors/index.ts +3 -0
- package/gs/github.com/pkg/errors/stack.ts +127 -0
- package/gs/maps/index.ts +2 -2
- package/gs/maps/iter.ts +67 -0
- package/gs/maps/maps.ts +89 -0
- package/gs/math/TODO.md +156 -0
- package/gs/math/abs.gs.test.ts +29 -0
- package/gs/math/abs.gs.ts +13 -0
- package/gs/math/acosh.gs.test.ts +39 -0
- package/gs/math/acosh.gs.ts +21 -0
- package/gs/math/asin.gs.test.ts +66 -0
- package/gs/math/asin.gs.ts +27 -0
- package/gs/math/asinh.gs.test.ts +37 -0
- package/gs/math/asinh.gs.ts +21 -0
- package/gs/math/atan.gs.test.ts +49 -0
- package/gs/math/atan.gs.ts +27 -0
- package/gs/math/atan2.gs.test.ts +55 -0
- package/gs/math/atan2.gs.ts +37 -0
- package/gs/math/atanh.gs.test.ts +47 -0
- package/gs/math/atanh.gs.ts +21 -0
- package/gs/math/bits.gs.test.ts +88 -0
- package/gs/math/bits.gs.ts +61 -0
- package/gs/math/cbrt.gs.test.ts +57 -0
- package/gs/math/cbrt.gs.ts +20 -0
- package/gs/math/const.gs.test.ts +54 -0
- package/gs/math/const.gs.ts +93 -0
- package/gs/math/copysign.gs.test.ts +44 -0
- package/gs/math/copysign.gs.ts +27 -0
- package/gs/math/dim.gs.test.ts +102 -0
- package/gs/math/dim.gs.ts +84 -0
- package/gs/math/erf.gs.test.ts +92 -0
- package/gs/math/erf.gs.ts +409 -0
- package/gs/math/erfinv.gs.test.ts +104 -0
- package/gs/math/erfinv.gs.ts +169 -0
- package/gs/math/exp.gs.test.ts +82 -0
- package/gs/math/exp.gs.ts +39 -0
- package/gs/math/expm1.gs.test.ts +48 -0
- package/gs/math/expm1.gs.ts +23 -0
- package/gs/math/floor.gs.test.ts +146 -0
- package/gs/math/floor.gs.ts +88 -0
- package/gs/math/fma.gs.test.ts +83 -0
- package/gs/math/fma.gs.ts +7 -0
- package/gs/math/frexp.gs.test.ts +146 -0
- package/gs/math/frexp.gs.ts +37 -0
- package/gs/math/gamma.gs.test.ts +66 -0
- package/gs/math/gamma.gs.ts +158 -0
- package/gs/math/hypot.gs.test.ts +73 -0
- package/gs/math/hypot.gs.ts +23 -0
- package/gs/math/index.ts +44 -0
- package/gs/math/j0.gs.test.ts +74 -0
- package/gs/math/j0.gs.ts +257 -0
- package/gs/math/j1.gs.test.ts +81 -0
- package/gs/math/j1.gs.ts +231 -0
- package/gs/math/jn.gs.test.ts +133 -0
- package/gs/math/jn.gs.ts +447 -0
- package/gs/math/ldexp.gs.test.ts +128 -0
- package/gs/math/ldexp.gs.ts +28 -0
- package/gs/math/lgamma.gs.test.ts +102 -0
- package/gs/math/lgamma.gs.ts +251 -0
- package/gs/math/log.gs.test.ts +40 -0
- package/gs/math/log.gs.ts +21 -0
- package/gs/math/log10.gs.test.ts +80 -0
- package/gs/math/log10.gs.ts +25 -0
- package/gs/math/log1p.gs.test.ts +55 -0
- package/gs/math/log1p.gs.ts +24 -0
- package/gs/math/logb.gs.test.ts +87 -0
- package/gs/math/logb.gs.ts +54 -0
- package/gs/math/mod.gs.test.ts +64 -0
- package/gs/math/mod.gs.ts +36 -0
- package/gs/math/modf.gs.test.ts +80 -0
- package/gs/math/modf.gs.ts +32 -0
- package/gs/math/nextafter.gs.test.ts +107 -0
- package/gs/math/nextafter.gs.ts +71 -0
- package/gs/math/pow.gs.test.ts +103 -0
- package/gs/math/pow.gs.ts +55 -0
- package/gs/math/pow10.gs.test.ts +58 -0
- package/gs/math/pow10.gs.ts +19 -0
- package/gs/math/remainder.gs.test.ts +70 -0
- package/gs/math/remainder.gs.ts +33 -0
- package/gs/math/signbit.gs.test.ts +33 -0
- package/gs/math/signbit.gs.ts +8 -0
- package/gs/math/sin.gs.test.ts +83 -0
- package/gs/math/sin.gs.ts +38 -0
- package/gs/math/sincos.gs.test.ts +91 -0
- package/gs/math/sincos.gs.ts +15 -0
- package/gs/math/sinh.gs.test.ts +66 -0
- package/gs/math/sinh.gs.ts +34 -0
- package/gs/math/sqrt.gs.test.ts +49 -0
- package/gs/math/sqrt.gs.ts +20 -0
- package/gs/math/tan.gs.test.ts +50 -0
- package/gs/math/tan.gs.ts +23 -0
- package/gs/math/tanh.gs.test.ts +52 -0
- package/gs/math/tanh.gs.ts +23 -0
- package/gs/math/trig_reduce.gs.ts +66 -0
- package/gs/math/unsafe.gs.ts +52 -0
- package/gs/strconv/atob.gs.ts +45 -0
- package/gs/strconv/atof.gs.ts +60 -0
- package/gs/strconv/atoi.gs.ts +243 -0
- package/gs/strconv/doc.gs.ts +2 -0
- package/gs/strconv/ftoa.gs.ts +66 -0
- package/gs/strconv/index.ts +6 -0
- package/gs/strconv/itoa.gs.ts +41 -0
- package/gs/strconv/quote.gs.ts +245 -0
- package/gs/strings/index.ts +4 -0
- package/gs/strings/replace.ts +9 -237
- package/gs/strings/search.ts +0 -28
- package/package.json +1 -1
- package/gs/maps/iter.gs.ts +0 -71
- package/gs/maps/maps.gs.ts +0 -87
- package/gs/stringslite/godoc.txt +0 -17
- package/gs/stringslite/index.ts +0 -1
- package/gs/stringslite/strings.ts +0 -82
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import * as errors from "@goscript/errors/index.js";
|
|
3
|
+
export let ErrRange = errors.New("value out of range");
|
|
4
|
+
export let ErrSyntax = errors.New("invalid syntax");
|
|
5
|
+
export class NumError {
|
|
6
|
+
// the failing function (ParseBool, ParseInt, ParseUint, ParseFloat, ParseComplex)
|
|
7
|
+
get Func() {
|
|
8
|
+
return this._fields.Func.value;
|
|
9
|
+
}
|
|
10
|
+
set Func(value) {
|
|
11
|
+
this._fields.Func.value = value;
|
|
12
|
+
}
|
|
13
|
+
// the input
|
|
14
|
+
get Num() {
|
|
15
|
+
return this._fields.Num.value;
|
|
16
|
+
}
|
|
17
|
+
set Num(value) {
|
|
18
|
+
this._fields.Num.value = value;
|
|
19
|
+
}
|
|
20
|
+
// the reason the conversion failed (e.g. ErrRange, ErrSyntax, etc.)
|
|
21
|
+
get Err() {
|
|
22
|
+
return this._fields.Err.value;
|
|
23
|
+
}
|
|
24
|
+
set Err(value) {
|
|
25
|
+
this._fields.Err.value = value;
|
|
26
|
+
}
|
|
27
|
+
_fields;
|
|
28
|
+
constructor(init) {
|
|
29
|
+
this._fields = {
|
|
30
|
+
Func: $.varRef(init?.Func ?? ""),
|
|
31
|
+
Num: $.varRef(init?.Num ?? ""),
|
|
32
|
+
Err: $.varRef(init?.Err ?? null)
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
clone() {
|
|
36
|
+
const cloned = new NumError();
|
|
37
|
+
cloned._fields = {
|
|
38
|
+
Func: $.varRef(this._fields.Func.value),
|
|
39
|
+
Num: $.varRef(this._fields.Num.value),
|
|
40
|
+
Err: $.varRef(this._fields.Err.value)
|
|
41
|
+
};
|
|
42
|
+
return cloned;
|
|
43
|
+
}
|
|
44
|
+
Error() {
|
|
45
|
+
const e = this;
|
|
46
|
+
return "strconv." + e.Func + ": " + "parsing " + JSON.stringify(e.Num) + ": " + e.Err.Error();
|
|
47
|
+
}
|
|
48
|
+
Unwrap() {
|
|
49
|
+
const e = this;
|
|
50
|
+
return e.Err;
|
|
51
|
+
}
|
|
52
|
+
// Register this type with the runtime type system
|
|
53
|
+
static __typeInfo = $.registerStructType('NumError', new NumError(), [{ name: "Error", args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: "string" } }] }, { name: "Unwrap", args: [], returns: [{ type: { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } }] }], NumError, { "Func": { kind: $.TypeKind.Basic, name: "string" }, "Num": { kind: $.TypeKind.Basic, name: "string" }, "Err": { kind: $.TypeKind.Interface, name: 'GoError', methods: [{ name: 'Error', args: [], returns: [{ type: { kind: $.TypeKind.Basic, name: 'string' } }] }] } });
|
|
54
|
+
}
|
|
55
|
+
export function syntaxError(fn, str) {
|
|
56
|
+
return new NumError({ Func: fn, Num: str, Err: ErrSyntax });
|
|
57
|
+
}
|
|
58
|
+
export function rangeError(fn, str) {
|
|
59
|
+
return new NumError({ Func: fn, Num: str, Err: ErrRange });
|
|
60
|
+
}
|
|
61
|
+
export function baseError(fn, str, base) {
|
|
62
|
+
return new NumError({ Func: fn, Num: str, Err: errors.New("invalid base " + base) });
|
|
63
|
+
}
|
|
64
|
+
export function bitSizeError(fn, str, bitSize) {
|
|
65
|
+
return new NumError({ Func: fn, Num: str, Err: errors.New("invalid bit size " + bitSize) });
|
|
66
|
+
}
|
|
67
|
+
export let IntSize = 64;
|
|
68
|
+
// lower(c) is a lower-case letter if and only if
|
|
69
|
+
// c is either that lower-case letter or the equivalent upper-case letter.
|
|
70
|
+
function lower(c) {
|
|
71
|
+
return (c | (120 - 88));
|
|
72
|
+
}
|
|
73
|
+
// ParseUint is like ParseInt but for unsigned numbers.
|
|
74
|
+
// A sign prefix is not permitted.
|
|
75
|
+
export function ParseUint(s, base, bitSize) {
|
|
76
|
+
if (s === "") {
|
|
77
|
+
return [0, syntaxError("ParseUint", s)];
|
|
78
|
+
}
|
|
79
|
+
const base0 = base === 0;
|
|
80
|
+
const s0 = s;
|
|
81
|
+
// Handle base validation
|
|
82
|
+
if (base < 0 || base === 1 || base > 36) {
|
|
83
|
+
return [0, baseError("ParseUint", s0, base)];
|
|
84
|
+
}
|
|
85
|
+
// Handle base inference
|
|
86
|
+
if (base === 0) {
|
|
87
|
+
base = 10;
|
|
88
|
+
if (s.length >= 3) {
|
|
89
|
+
if (s[0] === '0') {
|
|
90
|
+
const prefix = s[1].toLowerCase();
|
|
91
|
+
if (prefix === 'b') {
|
|
92
|
+
base = 2;
|
|
93
|
+
s = s.slice(2);
|
|
94
|
+
}
|
|
95
|
+
else if (prefix === 'o') {
|
|
96
|
+
base = 8;
|
|
97
|
+
s = s.slice(2);
|
|
98
|
+
}
|
|
99
|
+
else if (prefix === 'x') {
|
|
100
|
+
base = 16;
|
|
101
|
+
s = s.slice(2);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
base = 8;
|
|
105
|
+
s = s.slice(1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
else if (s.length >= 2 && s[0] === '0') {
|
|
110
|
+
base = 8;
|
|
111
|
+
s = s.slice(1);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Validate bitSize
|
|
115
|
+
if (bitSize === 0) {
|
|
116
|
+
bitSize = 64;
|
|
117
|
+
}
|
|
118
|
+
else if (bitSize < 0 || bitSize > 64) {
|
|
119
|
+
return [0, bitSizeError("ParseUint", s0, bitSize)];
|
|
120
|
+
}
|
|
121
|
+
// Check for underscores only if base0 (auto-detected base)
|
|
122
|
+
if (base0 && s.includes('_')) {
|
|
123
|
+
if (!underscoreOK(s)) {
|
|
124
|
+
return [0, syntaxError("ParseUint", s0)];
|
|
125
|
+
}
|
|
126
|
+
s = s.replace(/_/g, '');
|
|
127
|
+
}
|
|
128
|
+
// Use JavaScript's parseInt
|
|
129
|
+
const result = parseInt(s, base);
|
|
130
|
+
if (isNaN(result) || !isFinite(result)) {
|
|
131
|
+
return [0, syntaxError("ParseUint", s0)];
|
|
132
|
+
}
|
|
133
|
+
if (result < 0) {
|
|
134
|
+
return [0, syntaxError("ParseUint", s0)];
|
|
135
|
+
}
|
|
136
|
+
// Check range for the specified bit size
|
|
137
|
+
const maxVal = (1 << bitSize) - 1;
|
|
138
|
+
if (result > maxVal) {
|
|
139
|
+
return [0, rangeError("ParseUint", s0)];
|
|
140
|
+
}
|
|
141
|
+
return [result, null];
|
|
142
|
+
}
|
|
143
|
+
// ParseInt interprets a string s in the given base (0, 2 to 36) and
|
|
144
|
+
// bit size (0 to 64) and returns the corresponding value i.
|
|
145
|
+
export function ParseInt(s, base, bitSize) {
|
|
146
|
+
if (s === "") {
|
|
147
|
+
return [0, syntaxError("ParseInt", s)];
|
|
148
|
+
}
|
|
149
|
+
let neg = false;
|
|
150
|
+
if (s[0] === '+' || s[0] === '-') {
|
|
151
|
+
neg = s[0] === '-';
|
|
152
|
+
s = s.slice(1);
|
|
153
|
+
if (s.length < 1) {
|
|
154
|
+
return [0, syntaxError("ParseInt", s)];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Convert to unsigned first
|
|
158
|
+
const [un, err] = ParseUint(s, base, bitSize);
|
|
159
|
+
if (err !== null) {
|
|
160
|
+
const numErr = err;
|
|
161
|
+
numErr.Func = "ParseInt";
|
|
162
|
+
return [0, err];
|
|
163
|
+
}
|
|
164
|
+
if (bitSize === 0) {
|
|
165
|
+
bitSize = 64;
|
|
166
|
+
}
|
|
167
|
+
const cutoff = 1 << (bitSize - 1);
|
|
168
|
+
if (!neg && un >= cutoff) {
|
|
169
|
+
return [0, rangeError("ParseInt", s)];
|
|
170
|
+
}
|
|
171
|
+
if (neg && un > cutoff) {
|
|
172
|
+
return [0, rangeError("ParseInt", s)];
|
|
173
|
+
}
|
|
174
|
+
const result = neg ? -un : un;
|
|
175
|
+
return [result, null];
|
|
176
|
+
}
|
|
177
|
+
// Atoi is equivalent to ParseInt(s, 10, 0), converted to type int.
|
|
178
|
+
export function Atoi(s) {
|
|
179
|
+
const [i64, err] = ParseInt(s, 10, 0);
|
|
180
|
+
return [i64, err];
|
|
181
|
+
}
|
|
182
|
+
// underscoreOK reports whether the underscores in s are allowed.
|
|
183
|
+
function underscoreOK(s) {
|
|
184
|
+
// Simplified validation for underscores
|
|
185
|
+
if (s.length === 0) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
// Can't start or end with underscore
|
|
189
|
+
if (s[0] === '_' || s[s.length - 1] === '_') {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
// Can't have consecutive underscores
|
|
193
|
+
for (let i = 0; i < s.length - 1; i++) {
|
|
194
|
+
if (s[i] === '_' && s[i + 1] === '_') {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=atoi.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atoi.gs.js","sourceRoot":"","sources":["../../../gs/strconv/atoi.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAEpD,MAAM,CAAC,IAAI,QAAQ,GAAc,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAClE,MAAM,CAAC,IAAI,SAAS,GAAc,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAE/D,MAAM,OAAO,QAAQ;IACpB,kFAAkF;IAClF,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,IAAW,IAAI,CAAC,KAAa;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,YAAY;IACZ,IAAW,GAAG;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,IAAW,GAAG,CAAC,KAAa;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,oEAAoE;IACpE,IAAW,GAAG;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,IAAW,GAAG,CAAC,KAAgB;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAChC,CAAC;IAEM,OAAO,CAIb;IAED,YAAY,IAA8D;QACzE,IAAI,CAAC,OAAO,GAAG;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAChC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;YAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC;SAChC,CAAC;IACH,CAAC;IAEM,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,GAAG;YAChB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YACrC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;SACrC,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,KAAK;QACX,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,UAAU,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAI,CAAC,KAAK,EAAE,CAAC;IAChG,CAAC;IAEM,MAAM;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,CAAC,GAAG,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,kBAAkB,CACvC,UAAU,EACV,IAAI,QAAQ,EAAE,EACd,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAC3S,QAAQ,EACR,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAC,CACxQ,CAAC;;AAGH,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,GAAW;IAClD,OAAO,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,GAAW;IACjD,OAAO,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU,EAAE,GAAW,EAAE,IAAY;IAC9D,OAAO,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,EAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,GAAW,EAAE,OAAe;IACpE,OAAO,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,EAAC,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,IAAI,OAAO,GAAW,EAAE,CAAC;AAEhC,iDAAiD;AACjD,0EAA0E;AAC1E,SAAS,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AACzB,CAAC;AAED,uDAAuD;AACvD,kCAAkC;AAClC,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,IAAY,EAAE,OAAe;IACjE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,CAAC;IAEb,yBAAyB;IACzB,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAChB,IAAI,GAAG,EAAE,CAAC;QACV,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACpB,IAAI,GAAG,CAAC,CAAC;oBACT,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC3B,IAAI,GAAG,CAAC,CAAC;oBACT,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC3B,IAAI,GAAG,EAAE,CAAC;oBACV,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACP,IAAI,GAAG,CAAC,CAAC;oBACT,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,2DAA2D;IAC3D,IAAI,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,4BAA4B;IAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,yCAAyC;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,oEAAoE;AACpE,4DAA4D;AAC5D,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,IAAY,EAAE,OAAe;IAChE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QACnB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,4BAA4B;IAC5B,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAe,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;QACzB,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,MAAM,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CAAC,CAAS;IAC9B,wCAAwC;IACxC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qCAAqC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc.gs.js","sourceRoot":"","sources":["../../../gs/strconv/doc.gs.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
// FormatFloat converts the floating-point number f to a string,
|
|
3
|
+
// according to the format fmt and precision prec. It rounds the
|
|
4
|
+
// result assuming that the original was obtained from a floating-point
|
|
5
|
+
// value of bitSize bits (32 for float32, 64 for float64).
|
|
6
|
+
export function FormatFloat(f, fmt, prec, bitSize) {
|
|
7
|
+
const fmtChar = String.fromCharCode(fmt);
|
|
8
|
+
// Handle special cases
|
|
9
|
+
if (isNaN(f)) {
|
|
10
|
+
return "NaN";
|
|
11
|
+
}
|
|
12
|
+
if (f === Infinity) {
|
|
13
|
+
return "+Inf";
|
|
14
|
+
}
|
|
15
|
+
if (f === -Infinity) {
|
|
16
|
+
return "-Inf";
|
|
17
|
+
}
|
|
18
|
+
// Convert to appropriate precision for float32
|
|
19
|
+
if (bitSize === 32) {
|
|
20
|
+
f = Math.fround(f);
|
|
21
|
+
}
|
|
22
|
+
switch (fmtChar.toLowerCase()) {
|
|
23
|
+
case 'e':
|
|
24
|
+
// Exponential notation
|
|
25
|
+
if (prec < 0) {
|
|
26
|
+
return f.toExponential();
|
|
27
|
+
}
|
|
28
|
+
return f.toExponential(prec);
|
|
29
|
+
case 'f':
|
|
30
|
+
// Fixed-point notation
|
|
31
|
+
if (prec < 0) {
|
|
32
|
+
return f.toString();
|
|
33
|
+
}
|
|
34
|
+
return f.toFixed(prec);
|
|
35
|
+
case 'g':
|
|
36
|
+
// Use the more compact of 'e' or 'f'
|
|
37
|
+
if (prec < 0) {
|
|
38
|
+
return f.toPrecision();
|
|
39
|
+
}
|
|
40
|
+
return f.toPrecision(prec + 1);
|
|
41
|
+
case 'x':
|
|
42
|
+
// Hexadecimal notation (simplified)
|
|
43
|
+
return f.toString(16);
|
|
44
|
+
default:
|
|
45
|
+
// Default to 'g' format
|
|
46
|
+
if (prec < 0) {
|
|
47
|
+
return f.toString();
|
|
48
|
+
}
|
|
49
|
+
return f.toPrecision(prec + 1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// AppendFloat appends the string form of the floating-point number f,
|
|
53
|
+
// as generated by FormatFloat, to dst and returns the extended buffer.
|
|
54
|
+
export function AppendFloat(dst, f, fmt, prec, bitSize) {
|
|
55
|
+
const str = FormatFloat(f, fmt, prec, bitSize);
|
|
56
|
+
return $.append(dst, ...$.stringToBytes(str));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=ftoa.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ftoa.gs.js","sourceRoot":"","sources":["../../../gs/strconv/ftoa.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,gEAAgE;AAChE,gEAAgE;AAChE,uEAAuE;AACvE,0DAA0D;AAC1D,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,GAAW,EAAE,IAAY,EAAE,OAAe;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,uBAAuB;IACvB,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IACf,CAAC;IAED,+CAA+C;IAC/C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACpB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,QAAQ,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/B,KAAK,GAAG;YACP,uBAAuB;YACvB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE9B,KAAK,GAAG;YACP,uBAAuB;YACvB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAExB,KAAK,GAAG;YACP,qCAAqC;YACrC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAEhC,KAAK,GAAG;YACP,oCAAoC;YACpC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEvB;YACC,wBAAwB;YACxB,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrB,CAAC;YACD,OAAO,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;AACF,CAAC;AAED,sEAAsE;AACtE,uEAAuE;AACvE,MAAM,UAAU,WAAW,CAAC,GAAY,EAAE,CAAS,EAAE,GAAW,EAAE,IAAY,EAAE,OAAe;IAC9F,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { AppendBool, FormatBool, ParseBool } from "./atob.gs.js";
|
|
2
|
+
export { ParseFloat } from "./atof.gs.js";
|
|
3
|
+
export { Atoi, ErrRange, ErrSyntax, IntSize, NumError, ParseInt, ParseUint } from "./atoi.gs.js";
|
|
4
|
+
export { AppendFloat, FormatFloat } from "./ftoa.gs.js";
|
|
5
|
+
export { AppendInt, AppendUint, FormatInt, FormatUint, Itoa } from "./itoa.gs.js";
|
|
6
|
+
export { AppendQuote, AppendQuoteRune, AppendQuoteRuneToASCII, AppendQuoteRuneToGraphic, AppendQuoteToASCII, AppendQuoteToGraphic, CanBackquote, IsGraphic, IsPrint, Quote, QuoteRune, QuoteRuneToASCII, QuoteRuneToGraphic, QuoteToASCII, QuoteToGraphic, QuotedPrefix, Unquote, UnquoteChar } from "./quote.gs.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { AppendBool, FormatBool, ParseBool } from "./atob.gs.js";
|
|
2
|
+
export { ParseFloat } from "./atof.gs.js";
|
|
3
|
+
export { Atoi, ErrRange, ErrSyntax, IntSize, NumError, ParseInt, ParseUint } from "./atoi.gs.js";
|
|
4
|
+
export { AppendFloat, FormatFloat } from "./ftoa.gs.js";
|
|
5
|
+
export { AppendInt, AppendUint, FormatInt, FormatUint, Itoa } from "./itoa.gs.js";
|
|
6
|
+
export { AppendQuote, AppendQuoteRune, AppendQuoteRuneToASCII, AppendQuoteRuneToGraphic, AppendQuoteToASCII, AppendQuoteToGraphic, CanBackquote, IsGraphic, IsPrint, Quote, QuoteRune, QuoteRuneToASCII, QuoteRuneToGraphic, QuoteToASCII, QuoteToGraphic, QuotedPrefix, Unquote, UnquoteChar } from "./quote.gs.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/strconv/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAChG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
export declare function FormatUint(i: number, base: number): string;
|
|
3
|
+
export declare function FormatInt(i: number, base: number): string;
|
|
4
|
+
export declare function Itoa(i: number): string;
|
|
5
|
+
export declare function AppendInt(dst: $.Bytes, i: number, base: number): $.Bytes;
|
|
6
|
+
export declare function AppendUint(dst: $.Bytes, i: number, base: number): $.Bytes;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
// FormatUint returns the string representation of i in the given base,
|
|
3
|
+
// for 2 <= base <= 36. The result uses the lower-case letters 'a' to 'z'
|
|
4
|
+
// for digit values >= 10.
|
|
5
|
+
export function FormatUint(i, base) {
|
|
6
|
+
if (base < 2 || base > 36) {
|
|
7
|
+
throw new Error("FormatUint: illegal base");
|
|
8
|
+
}
|
|
9
|
+
// JavaScript's toString() handles bases 2-36 natively
|
|
10
|
+
return Math.floor(Math.abs(i)).toString(base);
|
|
11
|
+
}
|
|
12
|
+
// FormatInt returns the string representation of i in the given base,
|
|
13
|
+
// for 2 <= base <= 36. The result uses the lower-case letters 'a' to 'z'
|
|
14
|
+
// for digit values >= 10.
|
|
15
|
+
export function FormatInt(i, base) {
|
|
16
|
+
if (base < 2 || base > 36) {
|
|
17
|
+
throw new Error("FormatInt: illegal base");
|
|
18
|
+
}
|
|
19
|
+
return Math.floor(i).toString(base);
|
|
20
|
+
}
|
|
21
|
+
// Itoa is equivalent to FormatInt(i, 10).
|
|
22
|
+
export function Itoa(i) {
|
|
23
|
+
return FormatInt(i, 10);
|
|
24
|
+
}
|
|
25
|
+
// AppendInt appends the string form of the integer i,
|
|
26
|
+
// as generated by FormatInt, to dst and returns the extended buffer.
|
|
27
|
+
export function AppendInt(dst, i, base) {
|
|
28
|
+
const str = FormatInt(i, base);
|
|
29
|
+
return $.append(dst, ...$.stringToBytes(str));
|
|
30
|
+
}
|
|
31
|
+
// AppendUint appends the string form of the unsigned integer i,
|
|
32
|
+
// as generated by FormatUint, to dst and returns the extended buffer.
|
|
33
|
+
export function AppendUint(dst, i, base) {
|
|
34
|
+
const str = FormatUint(i, base);
|
|
35
|
+
return $.append(dst, ...$.stringToBytes(str));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=itoa.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"itoa.gs.js","sourceRoot":"","sources":["../../../gs/strconv/itoa.gs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAElD,uEAAuE;AACvE,yEAAyE;AACzE,0BAA0B;AAC1B,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,IAAY;IACjD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7C,CAAC;IACD,sDAAsD;IACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,sEAAsE;AACtE,yEAAyE;AACzE,0BAA0B;AAC1B,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,IAAY;IAChD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,IAAI,CAAC,CAAS;IAC7B,OAAO,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,sDAAsD;AACtD,qEAAqE;AACrE,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,CAAS,EAAE,IAAY;IAC9D,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAE,CAAC,CAAC;AAChD,CAAC;AAED,gEAAgE;AAChE,sEAAsE;AACtE,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,CAAS,EAAE,IAAY;IAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
export declare function Quote(s: string): string;
|
|
3
|
+
export declare function QuoteToASCII(s: string): string;
|
|
4
|
+
export declare function QuoteToGraphic(s: string): string;
|
|
5
|
+
export declare function QuoteRune(r: number): string;
|
|
6
|
+
export declare function QuoteRuneToASCII(r: number): string;
|
|
7
|
+
export declare function QuoteRuneToGraphic(r: number): string;
|
|
8
|
+
export declare function CanBackquote(s: string): boolean;
|
|
9
|
+
export declare function Unquote(s: string): [string, $.GoError];
|
|
10
|
+
export declare function UnquoteChar(s: string, quote: number): [number, boolean, string, $.GoError];
|
|
11
|
+
export declare function QuotedPrefix(s: string): [string, $.GoError];
|
|
12
|
+
export declare function AppendQuote(dst: $.Bytes, s: string): $.Bytes;
|
|
13
|
+
export declare function AppendQuoteToASCII(dst: $.Bytes, s: string): $.Bytes;
|
|
14
|
+
export declare function AppendQuoteToGraphic(dst: $.Bytes, s: string): $.Bytes;
|
|
15
|
+
export declare function AppendQuoteRune(dst: $.Bytes, r: number): $.Bytes;
|
|
16
|
+
export declare function AppendQuoteRuneToASCII(dst: $.Bytes, r: number): $.Bytes;
|
|
17
|
+
export declare function AppendQuoteRuneToGraphic(dst: $.Bytes, r: number): $.Bytes;
|
|
18
|
+
export declare function IsPrint(r: number): boolean;
|
|
19
|
+
export declare function IsGraphic(r: number): boolean;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import * as $ from "@goscript/builtin/builtin.js";
|
|
2
|
+
import { ErrSyntax } from "./atoi.gs.js";
|
|
3
|
+
// Quote returns a double-quoted Go string literal representing s.
|
|
4
|
+
// The returned string uses Go escape sequences (\t, \n, \xFF, \u0100) for control characters and non-printable characters.
|
|
5
|
+
export function Quote(s) {
|
|
6
|
+
return JSON.stringify(s);
|
|
7
|
+
}
|
|
8
|
+
// QuoteToASCII returns a double-quoted Go string literal representing s.
|
|
9
|
+
// The returned string uses Go escape sequences (\t, \n, \xFF, \u0100) for control characters and non-ASCII characters.
|
|
10
|
+
export function QuoteToASCII(s) {
|
|
11
|
+
// For simplicity, use JSON.stringify and then escape non-ASCII
|
|
12
|
+
const quoted = JSON.stringify(s);
|
|
13
|
+
return quoted.replace(/[\u0080-\uFFFF]/g, (match) => {
|
|
14
|
+
const code = match.charCodeAt(0);
|
|
15
|
+
if (code <= 0xFF) {
|
|
16
|
+
return '\\x' + code.toString(16).padStart(2, '0');
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return '\\u' + code.toString(16).padStart(4, '0');
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// QuoteToGraphic returns a double-quoted Go string literal representing s.
|
|
24
|
+
// The returned string leaves Unicode graphic characters unchanged.
|
|
25
|
+
export function QuoteToGraphic(s) {
|
|
26
|
+
return Quote(s); // Simplified
|
|
27
|
+
}
|
|
28
|
+
// QuoteRune returns a single-quoted Go character literal representing the rune.
|
|
29
|
+
export function QuoteRune(r) {
|
|
30
|
+
const char = String.fromCharCode(r);
|
|
31
|
+
if (r === 39) { // single quote
|
|
32
|
+
return "'\\'";
|
|
33
|
+
}
|
|
34
|
+
if (r === 92) { // backslash
|
|
35
|
+
return "'\\\\'";
|
|
36
|
+
}
|
|
37
|
+
if (r >= 32 && r <= 126) { // printable ASCII
|
|
38
|
+
return "'" + char + "'";
|
|
39
|
+
}
|
|
40
|
+
// Use escape sequences for non-printable
|
|
41
|
+
if (r <= 0xFF) {
|
|
42
|
+
return "'\\x" + r.toString(16).padStart(2, '0') + "'";
|
|
43
|
+
}
|
|
44
|
+
return "'\\u" + r.toString(16).padStart(4, '0') + "'";
|
|
45
|
+
}
|
|
46
|
+
// QuoteRuneToASCII returns a single-quoted Go character literal representing the rune.
|
|
47
|
+
export function QuoteRuneToASCII(r) {
|
|
48
|
+
return QuoteRune(r); // Same as QuoteRune for simplicity
|
|
49
|
+
}
|
|
50
|
+
// QuoteRuneToGraphic returns a single-quoted Go character literal representing the rune.
|
|
51
|
+
export function QuoteRuneToGraphic(r) {
|
|
52
|
+
return QuoteRune(r); // Same as QuoteRune for simplicity
|
|
53
|
+
}
|
|
54
|
+
// CanBackquote reports whether the string s can be represented unchanged as a single-line backquoted string.
|
|
55
|
+
export function CanBackquote(s) {
|
|
56
|
+
// Check if string contains backticks or control characters
|
|
57
|
+
for (let i = 0; i < s.length; i++) {
|
|
58
|
+
const c = s.charCodeAt(i);
|
|
59
|
+
if (c === 96 || c < 32 || c === 127) { // backtick or control character
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
// Unquote interprets s as a single-quoted, double-quoted, or backquoted Go string literal.
|
|
66
|
+
export function Unquote(s) {
|
|
67
|
+
const n = s.length;
|
|
68
|
+
if (n < 2) {
|
|
69
|
+
return ["", ErrSyntax];
|
|
70
|
+
}
|
|
71
|
+
const quote = s[0];
|
|
72
|
+
if (quote !== s[n - 1]) {
|
|
73
|
+
return ["", ErrSyntax];
|
|
74
|
+
}
|
|
75
|
+
s = s.slice(1, n - 1);
|
|
76
|
+
if (quote === '`') {
|
|
77
|
+
// Backquoted string - no escapes processed
|
|
78
|
+
if (s.includes('`')) {
|
|
79
|
+
return ["", ErrSyntax];
|
|
80
|
+
}
|
|
81
|
+
if (s.includes('\r')) {
|
|
82
|
+
return ["", ErrSyntax];
|
|
83
|
+
}
|
|
84
|
+
return [s, null];
|
|
85
|
+
}
|
|
86
|
+
if (quote !== '"' && quote !== "'") {
|
|
87
|
+
return ["", ErrSyntax];
|
|
88
|
+
}
|
|
89
|
+
// Use JSON.parse for double-quoted strings as a starting point
|
|
90
|
+
if (quote === '"') {
|
|
91
|
+
try {
|
|
92
|
+
const result = JSON.parse('"' + s + '"');
|
|
93
|
+
return [result, null];
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return ["", ErrSyntax];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Single-quoted string - should contain single rune
|
|
100
|
+
if (quote === "'") {
|
|
101
|
+
// Simplified: just handle basic cases
|
|
102
|
+
if (s.length === 1) {
|
|
103
|
+
return [s, null];
|
|
104
|
+
}
|
|
105
|
+
if (s.length === 2 && s[0] === '\\') {
|
|
106
|
+
switch (s[1]) {
|
|
107
|
+
case 'n': return ['\n', null];
|
|
108
|
+
case 't': return ['\t', null];
|
|
109
|
+
case 'r': return ['\r', null];
|
|
110
|
+
case '\\': return ['\\', null];
|
|
111
|
+
case "'": return ["'", null];
|
|
112
|
+
default: return ["", ErrSyntax];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return ["", ErrSyntax];
|
|
116
|
+
}
|
|
117
|
+
return ["", ErrSyntax];
|
|
118
|
+
}
|
|
119
|
+
// UnquoteChar decodes the first character or byte in the escaped string or character literal represented by the string s.
|
|
120
|
+
export function UnquoteChar(s, quote) {
|
|
121
|
+
// Simplified implementation
|
|
122
|
+
if (s.length === 0) {
|
|
123
|
+
return [0, false, "", ErrSyntax];
|
|
124
|
+
}
|
|
125
|
+
const c = s.charCodeAt(0);
|
|
126
|
+
if (c === quote) {
|
|
127
|
+
return [0, false, "", ErrSyntax];
|
|
128
|
+
}
|
|
129
|
+
if (c !== 92) { // not backslash
|
|
130
|
+
return [c, c >= 128, s.slice(1), null];
|
|
131
|
+
}
|
|
132
|
+
// Handle escape sequence - simplified
|
|
133
|
+
if (s.length < 2) {
|
|
134
|
+
return [0, false, "", ErrSyntax];
|
|
135
|
+
}
|
|
136
|
+
switch (s[1]) {
|
|
137
|
+
case 'n': return [10, false, s.slice(2), null]; // \n
|
|
138
|
+
case 't': return [9, false, s.slice(2), null]; // \t
|
|
139
|
+
case 'r': return [13, false, s.slice(2), null]; // \r
|
|
140
|
+
case '\\': return [92, false, s.slice(2), null]; // \\
|
|
141
|
+
case '"': return [34, false, s.slice(2), null]; // \"
|
|
142
|
+
case "'": return [39, false, s.slice(2), null]; // \'
|
|
143
|
+
default: return [0, false, "", ErrSyntax];
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// QuotedPrefix returns the quoted string (as understood by Unquote) at the prefix of s.
|
|
147
|
+
export function QuotedPrefix(s) {
|
|
148
|
+
if (s.length === 0) {
|
|
149
|
+
return ["", ErrSyntax];
|
|
150
|
+
}
|
|
151
|
+
const quote = s[0];
|
|
152
|
+
if (quote !== '"' && quote !== "'" && quote !== '`') {
|
|
153
|
+
return ["", ErrSyntax];
|
|
154
|
+
}
|
|
155
|
+
// Find matching quote
|
|
156
|
+
for (let i = 1; i < s.length; i++) {
|
|
157
|
+
if (s[i] === quote) {
|
|
158
|
+
if (quote === '`') {
|
|
159
|
+
return [s.slice(0, i + 1), null];
|
|
160
|
+
}
|
|
161
|
+
// For " and ', need to handle escapes
|
|
162
|
+
let escaped = false;
|
|
163
|
+
for (let j = 1; j < i; j++) {
|
|
164
|
+
if (s[j] === '\\' && !escaped) {
|
|
165
|
+
escaped = true;
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
escaped = false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (!escaped || s[i - 1] !== '\\') {
|
|
172
|
+
return [s.slice(0, i + 1), null];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return ["", ErrSyntax];
|
|
177
|
+
}
|
|
178
|
+
// AppendQuote appends a double-quoted Go string literal representing s to dst and returns the extended buffer.
|
|
179
|
+
export function AppendQuote(dst, s) {
|
|
180
|
+
const quoted = Quote(s);
|
|
181
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
182
|
+
}
|
|
183
|
+
// AppendQuoteToASCII appends a double-quoted Go string literal representing s to dst and returns the extended buffer.
|
|
184
|
+
export function AppendQuoteToASCII(dst, s) {
|
|
185
|
+
const quoted = QuoteToASCII(s);
|
|
186
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
187
|
+
}
|
|
188
|
+
// AppendQuoteToGraphic appends a double-quoted Go string literal representing s to dst and returns the extended buffer.
|
|
189
|
+
export function AppendQuoteToGraphic(dst, s) {
|
|
190
|
+
const quoted = QuoteToGraphic(s);
|
|
191
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
192
|
+
}
|
|
193
|
+
// AppendQuoteRune appends a single-quoted Go character literal representing the rune to dst and returns the extended buffer.
|
|
194
|
+
export function AppendQuoteRune(dst, r) {
|
|
195
|
+
const quoted = QuoteRune(r);
|
|
196
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
197
|
+
}
|
|
198
|
+
// AppendQuoteRuneToASCII appends a single-quoted Go character literal representing the rune to dst and returns the extended buffer.
|
|
199
|
+
export function AppendQuoteRuneToASCII(dst, r) {
|
|
200
|
+
const quoted = QuoteRuneToASCII(r);
|
|
201
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
202
|
+
}
|
|
203
|
+
// AppendQuoteRuneToGraphic appends a single-quoted Go character literal representing the rune to dst and returns the extended buffer.
|
|
204
|
+
export function AppendQuoteRuneToGraphic(dst, r) {
|
|
205
|
+
const quoted = QuoteRuneToGraphic(r);
|
|
206
|
+
return $.append(dst, ...$.stringToBytes(quoted));
|
|
207
|
+
}
|
|
208
|
+
// IsPrint reports whether the rune is defined as printable by Go.
|
|
209
|
+
export function IsPrint(r) {
|
|
210
|
+
// Simplified: consider ASCII printable characters
|
|
211
|
+
return r >= 32 && r <= 126;
|
|
212
|
+
}
|
|
213
|
+
// IsGraphic reports whether the rune is defined as a Graphic by Unicode.
|
|
214
|
+
export function IsGraphic(r) {
|
|
215
|
+
return IsPrint(r); // Simplified
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=quote.gs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quote.gs.js","sourceRoot":"","sources":["../../../gs/strconv/quote.gs.ts"],"names":[],"mappings":"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"}
|
package/dist/gs/strings/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
export * from './builder.js';
|
|
2
2
|
export * from './strings.js';
|
|
3
|
+
export * from './reader.js';
|
|
4
|
+
export { Replacer, NewReplacer } from './replace.js';
|
|
5
|
+
export { Lines, FieldsSeq, FieldsFuncSeq, SplitSeq, SplitAfterSeq } from './iter.js';
|
|
6
|
+
// Clone and Compare are already exported from strings.js, so we don't re-export them
|
|
3
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/strings/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gs/strings/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACpF,qFAAqF"}
|