goscript 0.0.34 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/compiler/analysis.go +28 -20
  2. package/compiler/analysis_test.go +14 -0
  3. package/compiler/assignment.go +19 -7
  4. package/compiler/compiler.go +15 -99
  5. package/compiler/composite-lit.go +60 -17
  6. package/compiler/decl.go +1 -1
  7. package/compiler/expr-call.go +233 -35
  8. package/compiler/expr-selector.go +28 -2
  9. package/compiler/expr.go +13 -37
  10. package/compiler/lit.go +111 -2
  11. package/compiler/primitive.go +6 -6
  12. package/compiler/protobuf.go +0 -5
  13. package/compiler/sanitize.go +101 -0
  14. package/compiler/spec-struct.go +41 -8
  15. package/compiler/spec-value.go +29 -18
  16. package/compiler/stmt-assign.go +22 -1
  17. package/compiler/stmt.go +26 -9
  18. package/compiler/type.go +3 -3
  19. package/dist/gs/builtin/builtin.d.ts +3 -2
  20. package/dist/gs/builtin/builtin.js +2 -1
  21. package/dist/gs/builtin/builtin.js.map +1 -1
  22. package/dist/gs/builtin/map.js.map +1 -1
  23. package/dist/gs/builtin/slice.d.ts +7 -1
  24. package/dist/gs/builtin/slice.js +112 -22
  25. package/dist/gs/builtin/slice.js.map +1 -1
  26. package/dist/gs/github.com/pkg/errors/errors.d.ts +13 -0
  27. package/dist/gs/github.com/pkg/errors/errors.js +232 -0
  28. package/dist/gs/github.com/pkg/errors/errors.js.map +1 -0
  29. package/dist/gs/github.com/pkg/errors/go113.d.ts +4 -0
  30. package/dist/gs/github.com/pkg/errors/go113.js +34 -0
  31. package/dist/gs/github.com/pkg/errors/go113.js.map +1 -0
  32. package/dist/gs/github.com/pkg/errors/index.d.ts +3 -0
  33. package/dist/gs/github.com/pkg/errors/index.js +4 -0
  34. package/dist/gs/github.com/pkg/errors/index.js.map +1 -0
  35. package/dist/gs/github.com/pkg/errors/stack.d.ts +32 -0
  36. package/dist/gs/github.com/pkg/errors/stack.js +111 -0
  37. package/dist/gs/github.com/pkg/errors/stack.js.map +1 -0
  38. package/dist/gs/maps/index.d.ts +2 -2
  39. package/dist/gs/maps/index.js +2 -2
  40. package/dist/gs/maps/index.js.map +1 -1
  41. package/dist/gs/maps/iter.d.ts +7 -0
  42. package/dist/gs/maps/iter.js +57 -0
  43. package/dist/gs/maps/iter.js.map +1 -0
  44. package/dist/gs/maps/maps.d.ts +7 -0
  45. package/dist/gs/maps/maps.js +67 -0
  46. package/dist/gs/maps/maps.js.map +1 -0
  47. package/dist/gs/math/abs.gs.d.ts +1 -0
  48. package/dist/gs/math/abs.gs.js +10 -0
  49. package/dist/gs/math/abs.gs.js.map +1 -0
  50. package/dist/gs/math/acosh.gs.d.ts +2 -0
  51. package/dist/gs/math/acosh.gs.js +14 -0
  52. package/dist/gs/math/acosh.gs.js.map +1 -0
  53. package/dist/gs/math/asin.gs.d.ts +4 -0
  54. package/dist/gs/math/asin.gs.js +24 -0
  55. package/dist/gs/math/asin.gs.js.map +1 -0
  56. package/dist/gs/math/asinh.gs.d.ts +2 -0
  57. package/dist/gs/math/asinh.gs.js +14 -0
  58. package/dist/gs/math/asinh.gs.js.map +1 -0
  59. package/dist/gs/math/atan.gs.d.ts +4 -0
  60. package/dist/gs/math/atan.gs.js +22 -0
  61. package/dist/gs/math/atan.gs.js.map +1 -0
  62. package/dist/gs/math/atan2.gs.d.ts +2 -0
  63. package/dist/gs/math/atan2.gs.js +30 -0
  64. package/dist/gs/math/atan2.gs.js.map +1 -0
  65. package/dist/gs/math/atanh.gs.d.ts +2 -0
  66. package/dist/gs/math/atanh.gs.js +16 -0
  67. package/dist/gs/math/atanh.gs.js.map +1 -0
  68. package/dist/gs/math/bits.gs.d.ts +5 -0
  69. package/dist/gs/math/bits.gs.js +46 -0
  70. package/dist/gs/math/bits.gs.js.map +1 -0
  71. package/dist/gs/math/cbrt.gs.d.ts +2 -0
  72. package/dist/gs/math/cbrt.gs.js +14 -0
  73. package/dist/gs/math/cbrt.gs.js.map +1 -0
  74. package/dist/gs/math/const.gs.d.ts +30 -0
  75. package/dist/gs/math/const.gs.js +61 -0
  76. package/dist/gs/math/const.gs.js.map +1 -0
  77. package/dist/gs/math/copysign.gs.d.ts +1 -0
  78. package/dist/gs/math/copysign.gs.js +20 -0
  79. package/dist/gs/math/copysign.gs.js.map +1 -0
  80. package/dist/gs/math/dim.gs.d.ts +5 -0
  81. package/dist/gs/math/dim.gs.js +69 -0
  82. package/dist/gs/math/dim.gs.js.map +1 -0
  83. package/dist/gs/math/erf.gs.d.ts +4 -0
  84. package/dist/gs/math/erf.gs.js +336 -0
  85. package/dist/gs/math/erf.gs.js.map +1 -0
  86. package/dist/gs/math/erfinv.gs.d.ts +2 -0
  87. package/dist/gs/math/erfinv.gs.js +118 -0
  88. package/dist/gs/math/erfinv.gs.js.map +1 -0
  89. package/dist/gs/math/exp.gs.d.ts +5 -0
  90. package/dist/gs/math/exp.gs.js +30 -0
  91. package/dist/gs/math/exp.gs.js.map +1 -0
  92. package/dist/gs/math/expm1.gs.d.ts +2 -0
  93. package/dist/gs/math/expm1.gs.js +17 -0
  94. package/dist/gs/math/expm1.gs.js.map +1 -0
  95. package/dist/gs/math/floor.gs.d.ts +8 -0
  96. package/dist/gs/math/floor.gs.js +75 -0
  97. package/dist/gs/math/floor.gs.js.map +1 -0
  98. package/dist/gs/math/fma.gs.d.ts +1 -0
  99. package/dist/gs/math/fma.gs.js +8 -0
  100. package/dist/gs/math/fma.gs.js.map +1 -0
  101. package/dist/gs/math/frexp.gs.d.ts +2 -0
  102. package/dist/gs/math/frexp.gs.js +28 -0
  103. package/dist/gs/math/frexp.gs.js.map +1 -0
  104. package/dist/gs/math/gamma.gs.d.ts +3 -0
  105. package/dist/gs/math/gamma.gs.js +149 -0
  106. package/dist/gs/math/gamma.gs.js.map +1 -0
  107. package/dist/gs/math/hypot.gs.d.ts +2 -0
  108. package/dist/gs/math/hypot.gs.js +16 -0
  109. package/dist/gs/math/hypot.gs.js.map +1 -0
  110. package/dist/gs/math/index.d.ts +44 -0
  111. package/dist/gs/math/index.js +45 -0
  112. package/dist/gs/math/index.js.map +1 -0
  113. package/dist/gs/math/j0.gs.d.ts +4 -0
  114. package/dist/gs/math/j0.gs.js +228 -0
  115. package/dist/gs/math/j0.gs.js.map +1 -0
  116. package/dist/gs/math/j1.gs.d.ts +4 -0
  117. package/dist/gs/math/j1.gs.js +211 -0
  118. package/dist/gs/math/j1.gs.js.map +1 -0
  119. package/dist/gs/math/jn.gs.d.ts +2 -0
  120. package/dist/gs/math/jn.gs.js +412 -0
  121. package/dist/gs/math/jn.gs.js.map +1 -0
  122. package/dist/gs/math/ldexp.gs.d.ts +2 -0
  123. package/dist/gs/math/ldexp.gs.js +20 -0
  124. package/dist/gs/math/ldexp.gs.js.map +1 -0
  125. package/dist/gs/math/lgamma.gs.d.ts +2 -0
  126. package/dist/gs/math/lgamma.gs.js +243 -0
  127. package/dist/gs/math/lgamma.gs.js.map +1 -0
  128. package/dist/gs/math/log.gs.d.ts +2 -0
  129. package/dist/gs/math/log.gs.js +16 -0
  130. package/dist/gs/math/log.gs.js.map +1 -0
  131. package/dist/gs/math/log10.gs.d.ts +4 -0
  132. package/dist/gs/math/log10.gs.js +17 -0
  133. package/dist/gs/math/log10.gs.js.map +1 -0
  134. package/dist/gs/math/log1p.gs.d.ts +2 -0
  135. package/dist/gs/math/log1p.gs.js +17 -0
  136. package/dist/gs/math/log1p.gs.js.map +1 -0
  137. package/dist/gs/math/logb.gs.d.ts +3 -0
  138. package/dist/gs/math/logb.gs.js +43 -0
  139. package/dist/gs/math/logb.gs.js.map +1 -0
  140. package/dist/gs/math/mod.gs.d.ts +2 -0
  141. package/dist/gs/math/mod.gs.js +26 -0
  142. package/dist/gs/math/mod.gs.js.map +1 -0
  143. package/dist/gs/math/modf.gs.d.ts +2 -0
  144. package/dist/gs/math/modf.gs.js +24 -0
  145. package/dist/gs/math/modf.gs.js.map +1 -0
  146. package/dist/gs/math/nextafter.gs.d.ts +2 -0
  147. package/dist/gs/math/nextafter.gs.js +66 -0
  148. package/dist/gs/math/nextafter.gs.js.map +1 -0
  149. package/dist/gs/math/pow.gs.d.ts +3 -0
  150. package/dist/gs/math/pow.gs.js +40 -0
  151. package/dist/gs/math/pow.gs.js.map +1 -0
  152. package/dist/gs/math/pow10.gs.d.ts +1 -0
  153. package/dist/gs/math/pow10.gs.js +14 -0
  154. package/dist/gs/math/pow10.gs.js.map +1 -0
  155. package/dist/gs/math/remainder.gs.d.ts +2 -0
  156. package/dist/gs/math/remainder.gs.js +25 -0
  157. package/dist/gs/math/remainder.gs.js.map +1 -0
  158. package/dist/gs/math/signbit.gs.d.ts +1 -0
  159. package/dist/gs/math/signbit.gs.js +5 -0
  160. package/dist/gs/math/signbit.gs.js.map +1 -0
  161. package/dist/gs/math/sin.gs.d.ts +4 -0
  162. package/dist/gs/math/sin.gs.js +29 -0
  163. package/dist/gs/math/sin.gs.js.map +1 -0
  164. package/dist/gs/math/sincos.gs.d.ts +1 -0
  165. package/dist/gs/math/sincos.gs.js +11 -0
  166. package/dist/gs/math/sincos.gs.js.map +1 -0
  167. package/dist/gs/math/sinh.gs.d.ts +4 -0
  168. package/dist/gs/math/sinh.gs.js +27 -0
  169. package/dist/gs/math/sinh.gs.js.map +1 -0
  170. package/dist/gs/math/sqrt.gs.d.ts +2 -0
  171. package/dist/gs/math/sqrt.gs.js +15 -0
  172. package/dist/gs/math/sqrt.gs.js.map +1 -0
  173. package/dist/gs/math/tan.gs.d.ts +2 -0
  174. package/dist/gs/math/tan.gs.js +17 -0
  175. package/dist/gs/math/tan.gs.js.map +1 -0
  176. package/dist/gs/math/tanh.gs.d.ts +2 -0
  177. package/dist/gs/math/tanh.gs.js +17 -0
  178. package/dist/gs/math/tanh.gs.js.map +1 -0
  179. package/dist/gs/math/trig_reduce.gs.d.ts +1 -0
  180. package/dist/gs/math/trig_reduce.gs.js +62 -0
  181. package/dist/gs/math/trig_reduce.gs.js.map +1 -0
  182. package/dist/gs/math/unsafe.gs.d.ts +4 -0
  183. package/dist/gs/math/unsafe.gs.js +47 -0
  184. package/dist/gs/math/unsafe.gs.js.map +1 -0
  185. package/dist/gs/strconv/atob.gs.d.ts +4 -0
  186. package/dist/gs/strconv/atob.gs.js +42 -0
  187. package/dist/gs/strconv/atob.gs.js.map +1 -0
  188. package/dist/gs/strconv/atof.gs.d.ts +2 -0
  189. package/dist/gs/strconv/atof.gs.js +51 -0
  190. package/dist/gs/strconv/atof.gs.js.map +1 -0
  191. package/dist/gs/strconv/atoi.gs.d.ts +33 -0
  192. package/dist/gs/strconv/atoi.gs.js +200 -0
  193. package/dist/gs/strconv/atoi.gs.js.map +1 -0
  194. package/dist/gs/strconv/doc.gs.d.ts +1 -0
  195. package/dist/gs/strconv/doc.gs.js +2 -0
  196. package/dist/gs/strconv/doc.gs.js.map +1 -0
  197. package/dist/gs/strconv/ftoa.gs.d.ts +3 -0
  198. package/dist/gs/strconv/ftoa.gs.js +58 -0
  199. package/dist/gs/strconv/ftoa.gs.js.map +1 -0
  200. package/dist/gs/strconv/index.d.ts +6 -0
  201. package/dist/gs/strconv/index.js +7 -0
  202. package/dist/gs/strconv/index.js.map +1 -0
  203. package/dist/gs/strconv/itoa.gs.d.ts +6 -0
  204. package/dist/gs/strconv/itoa.gs.js +37 -0
  205. package/dist/gs/strconv/itoa.gs.js.map +1 -0
  206. package/dist/gs/strconv/quote.gs.d.ts +19 -0
  207. package/dist/gs/strconv/quote.gs.js +217 -0
  208. package/dist/gs/strconv/quote.gs.js.map +1 -0
  209. package/dist/gs/strings/index.d.ts +3 -0
  210. package/dist/gs/strings/index.js +4 -0
  211. package/dist/gs/strings/index.js.map +1 -1
  212. package/dist/gs/strings/replace.d.ts +0 -74
  213. package/dist/gs/strings/replace.js +6 -204
  214. package/dist/gs/strings/replace.js.map +1 -1
  215. package/dist/gs/strings/search.d.ts +0 -1
  216. package/dist/gs/strings/search.js +0 -21
  217. package/dist/gs/strings/search.js.map +1 -1
  218. package/dist/gs/sync/atomic/doc.gs.d.ts +28 -0
  219. package/dist/gs/sync/atomic/doc.gs.js +265 -0
  220. package/dist/gs/sync/atomic/doc.gs.js.map +1 -0
  221. package/dist/gs/sync/atomic/doc_64.gs.d.ts +15 -0
  222. package/dist/gs/sync/atomic/doc_64.gs.js +165 -0
  223. package/dist/gs/sync/atomic/doc_64.gs.js.map +1 -0
  224. package/dist/gs/sync/atomic/index.d.ts +4 -0
  225. package/dist/gs/sync/atomic/index.js +5 -0
  226. package/dist/gs/sync/atomic/index.js.map +1 -0
  227. package/dist/gs/sync/atomic/type.gs.d.ts +130 -0
  228. package/dist/gs/sync/atomic/type.gs.js +433 -0
  229. package/dist/gs/sync/atomic/type.gs.js.map +1 -0
  230. package/dist/gs/sync/atomic/value.gs.d.ts +19 -0
  231. package/dist/gs/sync/atomic/value.gs.js +116 -0
  232. package/dist/gs/sync/atomic/value.gs.js.map +1 -0
  233. package/dist/gs/unsafe/unsafe.d.ts +1 -0
  234. package/dist/gs/unsafe/unsafe.js +5 -0
  235. package/dist/gs/unsafe/unsafe.js.map +1 -1
  236. package/gs/builtin/builtin.ts +9 -7
  237. package/gs/builtin/map.ts +5 -1
  238. package/gs/builtin/slice.ts +152 -24
  239. package/gs/github.com/pkg/errors/errors.ts +307 -0
  240. package/gs/github.com/pkg/errors/go113.ts +39 -0
  241. package/gs/github.com/pkg/errors/index.ts +3 -0
  242. package/gs/github.com/pkg/errors/stack.ts +127 -0
  243. package/gs/maps/index.ts +2 -2
  244. package/gs/maps/iter.ts +67 -0
  245. package/gs/maps/maps.ts +89 -0
  246. package/gs/math/TODO.md +156 -0
  247. package/gs/math/abs.gs.test.ts +29 -0
  248. package/gs/math/abs.gs.ts +13 -0
  249. package/gs/math/acosh.gs.test.ts +39 -0
  250. package/gs/math/acosh.gs.ts +21 -0
  251. package/gs/math/asin.gs.test.ts +66 -0
  252. package/gs/math/asin.gs.ts +27 -0
  253. package/gs/math/asinh.gs.test.ts +37 -0
  254. package/gs/math/asinh.gs.ts +21 -0
  255. package/gs/math/atan.gs.test.ts +49 -0
  256. package/gs/math/atan.gs.ts +27 -0
  257. package/gs/math/atan2.gs.test.ts +55 -0
  258. package/gs/math/atan2.gs.ts +37 -0
  259. package/gs/math/atanh.gs.test.ts +47 -0
  260. package/gs/math/atanh.gs.ts +21 -0
  261. package/gs/math/bits.gs.test.ts +88 -0
  262. package/gs/math/bits.gs.ts +61 -0
  263. package/gs/math/cbrt.gs.test.ts +57 -0
  264. package/gs/math/cbrt.gs.ts +20 -0
  265. package/gs/math/const.gs.test.ts +54 -0
  266. package/gs/math/const.gs.ts +93 -0
  267. package/gs/math/copysign.gs.test.ts +44 -0
  268. package/gs/math/copysign.gs.ts +27 -0
  269. package/gs/math/dim.gs.test.ts +102 -0
  270. package/gs/math/dim.gs.ts +84 -0
  271. package/gs/math/erf.gs.test.ts +92 -0
  272. package/gs/math/erf.gs.ts +409 -0
  273. package/gs/math/erfinv.gs.test.ts +104 -0
  274. package/gs/math/erfinv.gs.ts +169 -0
  275. package/gs/math/exp.gs.test.ts +82 -0
  276. package/gs/math/exp.gs.ts +39 -0
  277. package/gs/math/expm1.gs.test.ts +48 -0
  278. package/gs/math/expm1.gs.ts +23 -0
  279. package/gs/math/floor.gs.test.ts +146 -0
  280. package/gs/math/floor.gs.ts +88 -0
  281. package/gs/math/fma.gs.test.ts +83 -0
  282. package/gs/math/fma.gs.ts +7 -0
  283. package/gs/math/frexp.gs.test.ts +146 -0
  284. package/gs/math/frexp.gs.ts +37 -0
  285. package/gs/math/gamma.gs.test.ts +66 -0
  286. package/gs/math/gamma.gs.ts +158 -0
  287. package/gs/math/hypot.gs.test.ts +73 -0
  288. package/gs/math/hypot.gs.ts +23 -0
  289. package/gs/math/index.ts +44 -0
  290. package/gs/math/j0.gs.test.ts +74 -0
  291. package/gs/math/j0.gs.ts +257 -0
  292. package/gs/math/j1.gs.test.ts +81 -0
  293. package/gs/math/j1.gs.ts +231 -0
  294. package/gs/math/jn.gs.test.ts +133 -0
  295. package/gs/math/jn.gs.ts +447 -0
  296. package/gs/math/ldexp.gs.test.ts +128 -0
  297. package/gs/math/ldexp.gs.ts +28 -0
  298. package/gs/math/lgamma.gs.test.ts +102 -0
  299. package/gs/math/lgamma.gs.ts +251 -0
  300. package/gs/math/log.gs.test.ts +40 -0
  301. package/gs/math/log.gs.ts +21 -0
  302. package/gs/math/log10.gs.test.ts +80 -0
  303. package/gs/math/log10.gs.ts +25 -0
  304. package/gs/math/log1p.gs.test.ts +55 -0
  305. package/gs/math/log1p.gs.ts +24 -0
  306. package/gs/math/logb.gs.test.ts +87 -0
  307. package/gs/math/logb.gs.ts +54 -0
  308. package/gs/math/mod.gs.test.ts +64 -0
  309. package/gs/math/mod.gs.ts +36 -0
  310. package/gs/math/modf.gs.test.ts +80 -0
  311. package/gs/math/modf.gs.ts +32 -0
  312. package/gs/math/nextafter.gs.test.ts +107 -0
  313. package/gs/math/nextafter.gs.ts +71 -0
  314. package/gs/math/pow.gs.test.ts +103 -0
  315. package/gs/math/pow.gs.ts +55 -0
  316. package/gs/math/pow10.gs.test.ts +58 -0
  317. package/gs/math/pow10.gs.ts +19 -0
  318. package/gs/math/remainder.gs.test.ts +70 -0
  319. package/gs/math/remainder.gs.ts +33 -0
  320. package/gs/math/signbit.gs.test.ts +33 -0
  321. package/gs/math/signbit.gs.ts +8 -0
  322. package/gs/math/sin.gs.test.ts +83 -0
  323. package/gs/math/sin.gs.ts +38 -0
  324. package/gs/math/sincos.gs.test.ts +91 -0
  325. package/gs/math/sincos.gs.ts +15 -0
  326. package/gs/math/sinh.gs.test.ts +66 -0
  327. package/gs/math/sinh.gs.ts +34 -0
  328. package/gs/math/sqrt.gs.test.ts +49 -0
  329. package/gs/math/sqrt.gs.ts +20 -0
  330. package/gs/math/tan.gs.test.ts +50 -0
  331. package/gs/math/tan.gs.ts +23 -0
  332. package/gs/math/tanh.gs.test.ts +52 -0
  333. package/gs/math/tanh.gs.ts +23 -0
  334. package/gs/math/trig_reduce.gs.ts +66 -0
  335. package/gs/math/unsafe.gs.ts +52 -0
  336. package/gs/strconv/atob.gs.ts +45 -0
  337. package/gs/strconv/atof.gs.ts +60 -0
  338. package/gs/strconv/atoi.gs.ts +243 -0
  339. package/gs/strconv/doc.gs.ts +2 -0
  340. package/gs/strconv/ftoa.gs.ts +66 -0
  341. package/gs/strconv/index.ts +6 -0
  342. package/gs/strconv/itoa.gs.ts +41 -0
  343. package/gs/strconv/quote.gs.ts +245 -0
  344. package/gs/strings/index.ts +4 -0
  345. package/gs/strings/replace.ts +9 -237
  346. package/gs/strings/search.ts +0 -28
  347. package/gs/sync/atomic/doc.gs.ts +276 -0
  348. package/gs/sync/atomic/doc_64.gs.ts +168 -0
  349. package/gs/sync/atomic/index.ts +4 -0
  350. package/gs/sync/atomic/type.gs.ts +596 -0
  351. package/gs/sync/atomic/value.gs.ts +158 -0
  352. package/gs/unsafe/unsafe.ts +6 -0
  353. package/package.json +1 -1
  354. package/gs/maps/iter.gs.ts +0 -71
  355. package/gs/maps/maps.gs.ts +0 -87
  356. package/gs/stringslite/godoc.txt +0 -17
  357. package/gs/stringslite/index.ts +0 -1
  358. 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":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doc.gs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.gs.js","sourceRoot":"","sources":["../../../gs/strconv/doc.gs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import * as $ from "@goscript/builtin/builtin.js";
2
+ export declare function FormatFloat(f: number, fmt: number, prec: number, bitSize: number): string;
3
+ export declare function AppendFloat(dst: $.Bytes, f: number, fmt: number, prec: number, bitSize: number): $.Bytes;
@@ -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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"}
@@ -1,2 +1,5 @@
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';
@@ -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"}