functionalscript 0.3.4 → 0.3.6

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 (457) hide show
  1. package/com/cpp/module.f.d.ts +10 -0
  2. package/com/cpp/module.f.js +107 -0
  3. package/com/cpp/test.f.d.ts +2 -0
  4. package/com/cpp/{test.f.ts → test.f.js} +9 -11
  5. package/com/cpp/testlib.f.d.ts +2 -0
  6. package/com/cpp/testlib.f.js +5 -0
  7. package/com/cs/module.f.d.ts +12 -0
  8. package/com/cs/module.f.js +80 -0
  9. package/com/cs/test.f.d.ts +2 -0
  10. package/com/cs/{test.f.ts → test.f.js} +9 -11
  11. package/com/cs/testlib.f.d.ts +2 -0
  12. package/com/cs/testlib.f.js +5 -0
  13. package/com/rust/module.f.d.ts +15 -0
  14. package/com/rust/module.f.js +169 -0
  15. package/com/rust/test.f.d.ts +2 -0
  16. package/com/rust/{test.f.ts → test.f.js} +7 -7
  17. package/com/rust/testlib.f.d.ts +2 -0
  18. package/com/rust/testlib.f.js +5 -0
  19. package/com/test/build.f.d.ts +20 -0
  20. package/com/test/build.f.js +58 -0
  21. package/com/types/module.f.d.ts +28 -0
  22. package/com/types/module.f.js +8 -0
  23. package/com/types/testlib.f.d.ts +44 -0
  24. package/com/types/{testlib.f.ts → testlib.f.js} +2 -3
  25. package/commonjs/build/module.f.d.ts +6 -0
  26. package/commonjs/build/module.f.js +69 -0
  27. package/commonjs/build/test.f.d.ts +2 -0
  28. package/commonjs/build/test.f.js +96 -0
  29. package/commonjs/module/function/{module.f.ts → module.f.d.ts} +5 -10
  30. package/commonjs/module/function/module.f.js +4 -0
  31. package/commonjs/module/module.f.d.ts +18 -0
  32. package/commonjs/module/module.f.js +12 -0
  33. package/commonjs/module.f.d.ts +6 -0
  34. package/commonjs/module.f.js +1 -0
  35. package/commonjs/package/dependencies/module.f.d.ts +7 -0
  36. package/commonjs/package/dependencies/module.f.js +13 -0
  37. package/commonjs/package/dependencies/test.f.d.ts +2 -0
  38. package/commonjs/package/dependencies/test.f.js +15 -0
  39. package/commonjs/package/module.f.d.ts +17 -0
  40. package/commonjs/package/module.f.js +18 -0
  41. package/commonjs/package/test.f.d.ts +2 -0
  42. package/commonjs/package/test.f.js +27 -0
  43. package/commonjs/path/module.f.d.ts +24 -0
  44. package/commonjs/path/module.f.js +114 -0
  45. package/commonjs/path/test.f.d.ts +25 -0
  46. package/commonjs/path/{test.f.ts → test.f.js} +123 -89
  47. package/crypto/prime_field/module.f.d.ts +43 -0
  48. package/crypto/prime_field/module.f.js +78 -0
  49. package/crypto/prime_field/test.f.d.ts +13 -0
  50. package/crypto/prime_field/test.f.js +149 -0
  51. package/crypto/secp/module.f.d.ts +68 -0
  52. package/crypto/secp/module.f.js +127 -0
  53. package/crypto/secp/test.f.d.ts +5 -0
  54. package/crypto/secp/test.f.js +72 -0
  55. package/crypto/sha2/module.f.d.ts +13 -0
  56. package/crypto/sha2/module.f.js +145 -0
  57. package/crypto/sha2/test.f.d.ts +9 -0
  58. package/crypto/sha2/test.f.js +82 -0
  59. package/dev/module.f.d.ts +1 -0
  60. package/dev/module.f.js +1 -0
  61. package/dev/test/module.f.d.ts +20 -0
  62. package/dev/test/module.f.js +75 -0
  63. package/dev/test.f.d.ts +9 -0
  64. package/dev/{test.f.ts → test.f.js} +22 -24
  65. package/djs/module.f.d.ts +17 -0
  66. package/djs/module.f.js +63 -0
  67. package/djs/parser/module.f.d.ts +12 -0
  68. package/djs/parser/module.f.js +333 -0
  69. package/djs/parser/test.f.d.ts +12 -0
  70. package/djs/parser/test.f.js +717 -0
  71. package/djs/serializer/module.f.d.ts +9 -0
  72. package/djs/serializer/module.f.js +81 -0
  73. package/djs/test/input.f.d.ts +2 -0
  74. package/djs/test/input.f.js +4 -0
  75. package/djs/test/m.f.d.ts +2 -0
  76. package/djs/test/m.f.js +1 -0
  77. package/djs/test.f.d.ts +12 -0
  78. package/djs/test.f.js +84 -0
  79. package/djs/tokenizer/module.f.d.ts +8 -0
  80. package/djs/tokenizer/module.f.js +60 -0
  81. package/djs/tokenizer/test.f.d.ts +7 -0
  82. package/djs/tokenizer/test.f.js +529 -0
  83. package/fsc/module.f.d.ts +5 -0
  84. package/fsc/module.f.js +75 -0
  85. package/fsc/test.f.d.ts +4 -0
  86. package/fsc/test.f.js +19 -0
  87. package/fsm/module.f.d.ts +13 -0
  88. package/fsm/module.f.js +59 -0
  89. package/fsm/test.f.d.ts +5 -0
  90. package/fsm/test.f.js +137 -0
  91. package/html/module.f.d.ts +13 -0
  92. package/html/module.f.js +58 -0
  93. package/html/test.f.d.ts +9 -0
  94. package/html/test.f.js +42 -0
  95. package/issues/test.f.d.ts +16 -0
  96. package/issues/test.f.js +70 -0
  97. package/js/tokenizer/module.f.d.ts +86 -0
  98. package/js/tokenizer/module.f.js +503 -0
  99. package/js/tokenizer/test.f.d.ts +9 -0
  100. package/js/tokenizer/test.f.js +905 -0
  101. package/json/module.f.d.ts +20 -0
  102. package/json/module.f.js +68 -0
  103. package/json/parser/module.f.d.ts +5 -0
  104. package/json/parser/module.f.js +155 -0
  105. package/json/parser/test.f.d.ts +5 -0
  106. package/json/parser/test.f.js +328 -0
  107. package/json/serializer/module.f.d.ts +7 -0
  108. package/json/serializer/module.f.js +21 -0
  109. package/json/serializer/test.f.d.ts +8 -0
  110. package/json/serializer/test.f.js +87 -0
  111. package/json/test.f.d.ts +8 -0
  112. package/json/test.f.js +61 -0
  113. package/json/tokenizer/module.f.d.ts +8 -0
  114. package/json/tokenizer/module.f.js +52 -0
  115. package/json/tokenizer/test.f.d.ts +6 -0
  116. package/json/tokenizer/test.f.js +419 -0
  117. package/nanvm-lib/tests/test.f.d.ts +27 -0
  118. package/nanvm-lib/tests/test.f.js +84 -0
  119. package/nodejs/version/module.f.d.ts +11 -0
  120. package/nodejs/version/module.f.js +16 -0
  121. package/nodejs/version/test.f.d.ts +2 -0
  122. package/nodejs/version/{test.f.ts → test.f.js} +13 -22
  123. package/package.json +9 -5
  124. package/text/ascii/module.f.d.ts +129 -0
  125. package/text/ascii/module.f.js +148 -0
  126. package/text/ascii/test.f.d.ts +4 -0
  127. package/text/ascii/test.f.js +14 -0
  128. package/text/module.f.d.ts +8 -0
  129. package/text/module.f.js +10 -0
  130. package/text/sgr/module.f.d.ts +8 -0
  131. package/text/sgr/module.f.js +8 -0
  132. package/text/test.f.d.ts +2 -0
  133. package/text/test.f.js +18 -0
  134. package/text/utf16/module.f.d.ts +9 -0
  135. package/text/utf16/module.f.js +66 -0
  136. package/text/utf16/test.f.d.ts +6 -0
  137. package/text/utf16/test.f.js +144 -0
  138. package/text/utf8/module.f.d.ts +6 -0
  139. package/text/utf8/module.f.js +112 -0
  140. package/text/utf8/test.f.d.ts +6 -0
  141. package/text/utf8/test.f.js +175 -0
  142. package/types/array/module.f.d.ts +21 -0
  143. package/types/array/module.f.js +23 -0
  144. package/types/array/test.f.d.ts +10 -0
  145. package/types/array/test.f.js +116 -0
  146. package/types/bigfloat/module.f.d.ts +3 -0
  147. package/types/bigfloat/module.f.js +66 -0
  148. package/types/bigfloat/test.f.d.ts +6 -0
  149. package/types/bigfloat/test.f.js +349 -0
  150. package/types/bigint/module.f.d.ts +54 -0
  151. package/types/bigint/{module.f.ts → module.f.js} +42 -65
  152. package/types/bigint/test.f.d.ts +16 -0
  153. package/types/bigint/test.f.js +199 -0
  154. package/types/bit_vec/module.f.d.ts +134 -0
  155. package/types/bit_vec/{module.f.ts → module.f.js} +47 -65
  156. package/types/bit_vec/test.f.d.ts +22 -0
  157. package/types/bit_vec/test.f.js +210 -0
  158. package/types/btree/find/module.f.d.ts +20 -0
  159. package/types/btree/find/module.f.js +84 -0
  160. package/types/btree/find/test.f.d.ts +2 -0
  161. package/types/btree/find/test.f.js +152 -0
  162. package/types/btree/module.f.d.ts +4 -0
  163. package/types/btree/module.f.js +31 -0
  164. package/types/btree/remove/module.f.d.ts +4 -0
  165. package/types/btree/remove/module.f.js +174 -0
  166. package/types/btree/remove/test.f.d.ts +5 -0
  167. package/types/btree/remove/test.f.js +634 -0
  168. package/types/btree/set/module.f.d.ts +3 -0
  169. package/types/btree/set/module.f.js +103 -0
  170. package/types/btree/set/test.f.d.ts +2 -0
  171. package/types/btree/set/test.f.js +360 -0
  172. package/types/btree/test.f.d.ts +8 -0
  173. package/types/btree/test.f.js +75 -0
  174. package/types/btree/types/module.f.d.ts +11 -0
  175. package/types/btree/types/module.f.js +1 -0
  176. package/types/byte_set/module.f.d.ts +16 -0
  177. package/types/byte_set/module.f.js +28 -0
  178. package/types/byte_set/test.f.d.ts +12 -0
  179. package/types/byte_set/test.f.js +122 -0
  180. package/types/function/compare/module.f.d.ts +10 -0
  181. package/types/function/compare/module.f.js +7 -0
  182. package/types/function/compare/test.f.d.ts +2 -0
  183. package/types/function/compare/test.f.js +8 -0
  184. package/types/function/module.f.d.ts +28 -0
  185. package/types/function/module.f.js +19 -0
  186. package/types/function/operator/module.f.d.ts +20 -0
  187. package/types/function/operator/module.f.js +18 -0
  188. package/types/function/test.f.d.ts +2 -0
  189. package/types/function/test.f.js +12 -0
  190. package/types/list/module.f.d.ts +50 -0
  191. package/types/list/module.f.js +171 -0
  192. package/types/list/test.f.d.ts +22 -0
  193. package/types/list/test.f.js +395 -0
  194. package/types/map/module.f.d.ts +14 -0
  195. package/types/map/module.f.js +31 -0
  196. package/types/map/test.f.d.ts +5 -0
  197. package/types/map/test.f.js +114 -0
  198. package/types/nibble_set/module.f.d.ts +10 -0
  199. package/types/nibble_set/module.f.js +9 -0
  200. package/types/nibble_set/test.f.d.ts +12 -0
  201. package/types/nibble_set/test.f.js +90 -0
  202. package/types/nullable/module.f.d.ts +3 -0
  203. package/types/nullable/module.f.js +2 -0
  204. package/types/nullable/test.f.d.ts +2 -0
  205. package/types/nullable/test.f.js +12 -0
  206. package/types/number/module.f.d.ts +6 -0
  207. package/types/number/module.f.js +8 -0
  208. package/types/number/test.f.d.ts +11 -0
  209. package/types/number/test.f.js +124 -0
  210. package/types/object/module.f.d.ts +10 -0
  211. package/types/object/module.f.js +12 -0
  212. package/types/object/test.f.d.ts +5 -0
  213. package/types/object/test.f.js +17 -0
  214. package/types/range/module.f.d.ts +3 -0
  215. package/types/range/module.f.js +2 -0
  216. package/types/range/test.f.d.ts +2 -0
  217. package/types/range/test.f.js +18 -0
  218. package/types/range_map/module.f.d.ts +14 -0
  219. package/types/range_map/module.f.js +51 -0
  220. package/types/range_map/test.f.d.ts +6 -0
  221. package/types/range_map/test.f.js +176 -0
  222. package/types/result/module.f.d.ts +7 -0
  223. package/types/result/module.f.js +8 -0
  224. package/types/sorted_list/module.f.d.ts +16 -0
  225. package/types/sorted_list/module.f.js +56 -0
  226. package/types/sorted_list/test.f.d.ts +5 -0
  227. package/types/sorted_list/test.f.js +64 -0
  228. package/types/sorted_set/module.f.d.ts +7 -0
  229. package/types/sorted_set/module.f.js +14 -0
  230. package/types/sorted_set/test.f.d.ts +6 -0
  231. package/types/sorted_set/test.f.js +78 -0
  232. package/types/string/module.f.d.ts +6 -0
  233. package/types/string/module.f.js +11 -0
  234. package/types/string/test.f.d.ts +15 -0
  235. package/types/string/test.f.js +58 -0
  236. package/types/string_set/module.f.d.ts +9 -0
  237. package/types/string_set/module.f.js +22 -0
  238. package/types/string_set/test.f.d.ts +5 -0
  239. package/types/string_set/test.f.js +65 -0
  240. package/.github/FUNDING.yml +0 -12
  241. package/.github/dependabot.yml +0 -11
  242. package/.github/workflows/ci.yml +0 -88
  243. package/.github/workflows/npm-publish.yml +0 -53
  244. package/CHANGELOG.md +0 -29
  245. package/Cargo.lock +0 -18
  246. package/Cargo.toml +0 -7
  247. package/com/README.md +0 -3
  248. package/com/cpp/README.md +0 -80
  249. package/com/cpp/module.f.ts +0 -180
  250. package/com/cpp/nanocom.hpp +0 -195
  251. package/com/cpp/testlib.f.ts +0 -8
  252. package/com/cs/module.f.ts +0 -145
  253. package/com/cs/testlib.f.ts +0 -8
  254. package/com/proposals.md +0 -28
  255. package/com/rust/module.f.ts +0 -287
  256. package/com/rust/nanocom/Cargo.lock +0 -7
  257. package/com/rust/nanocom/Cargo.toml +0 -15
  258. package/com/rust/nanocom/README.md +0 -56
  259. package/com/rust/nanocom/src/class.rs +0 -6
  260. package/com/rust/nanocom/src/cobject.rs +0 -90
  261. package/com/rust/nanocom/src/guid.rs +0 -15
  262. package/com/rust/nanocom/src/hresult.rs +0 -7
  263. package/com/rust/nanocom/src/interface.rs +0 -9
  264. package/com/rust/nanocom/src/iunknown.rs +0 -13
  265. package/com/rust/nanocom/src/lib.rs +0 -20
  266. package/com/rust/nanocom/src/object.rs +0 -34
  267. package/com/rust/nanocom/src/ref.rs +0 -57
  268. package/com/rust/nanocom/src/vmt.rs +0 -7
  269. package/com/rust/nanocom/tests/it.rs +0 -186
  270. package/com/rust/nanocom/tests/itmod.rs +0 -195
  271. package/com/rust/testlib.f.ts +0 -8
  272. package/com/test/build.f.ts +0 -111
  273. package/com/test/build.ts +0 -45
  274. package/com/test/cpp/main.cpp +0 -74
  275. package/com/test/cs/Program.cs +0 -31
  276. package/com/test/cs/cs.csproj +0 -16
  277. package/com/test/rust/Cargo.toml +0 -12
  278. package/com/test/rust/src/lib.rs +0 -56
  279. package/com/types/module.f.ts +0 -62
  280. package/commonjs/README.md +0 -94
  281. package/commonjs/build/module.f.ts +0 -100
  282. package/commonjs/build/test.f.ts +0 -107
  283. package/commonjs/module/module.f.ts +0 -41
  284. package/commonjs/module.f.ts +0 -7
  285. package/commonjs/module.ts +0 -31
  286. package/commonjs/package/dependencies/module.f.ts +0 -22
  287. package/commonjs/package/dependencies/test.f.ts +0 -8
  288. package/commonjs/package/module.f.ts +0 -31
  289. package/commonjs/package/test.f.ts +0 -12
  290. package/commonjs/path/README.md +0 -17
  291. package/commonjs/path/module.f.ts +0 -171
  292. package/commonjs/test.ts +0 -64
  293. package/crypto/README.md +0 -3
  294. package/crypto/prime_field/module.f.ts +0 -114
  295. package/crypto/prime_field/test.f.ts +0 -95
  296. package/crypto/secp/module.f.ts +0 -182
  297. package/crypto/secp/test.f.ts +0 -68
  298. package/crypto/sha2/module.f.ts +0 -215
  299. package/crypto/sha2/test.f.ts +0 -83
  300. package/deno.json +0 -71
  301. package/dev/README.md +0 -8
  302. package/dev/index.ts +0 -3
  303. package/dev/module.f.ts +0 -1
  304. package/dev/module.ts +0 -195
  305. package/dev/test/module.f.ts +0 -135
  306. package/dev/test.ts +0 -53
  307. package/djs/README.md +0 -54
  308. package/djs/module.f.ts +0 -76
  309. package/djs/parser/module.f.ts +0 -509
  310. package/djs/parser/test.f.ts +0 -461
  311. package/djs/serializer/module.f.ts +0 -90
  312. package/djs/test.f.ts +0 -67
  313. package/djs/tokenizer/module.f.ts +0 -99
  314. package/djs/tokenizer/test.f.ts +0 -364
  315. package/doc/LANGUAGE.md +0 -255
  316. package/doc/README.md +0 -61
  317. package/doc/byte-code.md +0 -59
  318. package/doc/fa.md +0 -174
  319. package/doc/predefined.md +0 -143
  320. package/doc/proposals.md +0 -21
  321. package/doc/vm/README.md +0 -24
  322. package/doc/vm-rearchitecture.md +0 -129
  323. package/doc/vm.md +0 -150
  324. package/fsc/README.md +0 -111
  325. package/fsc/module.f.ts +0 -122
  326. package/fsc/test.f.ts +0 -21
  327. package/fsm/README.md +0 -113
  328. package/fsm/module.f.ts +0 -107
  329. package/fsm/test.f.ts +0 -139
  330. package/funding.json +0 -61
  331. package/html/README.md +0 -32
  332. package/html/module.f.ts +0 -109
  333. package/html/test.f.ts +0 -37
  334. package/issues/01-test-debug.md +0 -3
  335. package/issues/02-esm.md +0 -8
  336. package/issues/03-djs.md +0 -57
  337. package/issues/05-publish.md +0 -40
  338. package/issues/11-fs-load.md +0 -13
  339. package/issues/17-djs-extension.md +0 -6
  340. package/issues/README.md +0 -42
  341. package/issues/lang/1000-json.md +0 -50
  342. package/issues/lang/2110-default-export.md +0 -11
  343. package/issues/lang/2120-const.md +0 -14
  344. package/issues/lang/2130-default-import.md +0 -10
  345. package/issues/lang/2210-block-comment.md +0 -12
  346. package/issues/lang/2220-namespace-import.md +0 -25
  347. package/issues/lang/2310-undefined.md +0 -7
  348. package/issues/lang/2320-bigint.md +0 -7
  349. package/issues/lang/2330-property-accessor.md +0 -225
  350. package/issues/lang/2340-operators.md +0 -41
  351. package/issues/lang/2350-grouping.md +0 -11
  352. package/issues/lang/2360-built-in.md +0 -81
  353. package/issues/lang/2410-identifier-property.md +0 -9
  354. package/issues/lang/2420-line-comment.md +0 -10
  355. package/issues/lang/2430-trailing-comma.md +0 -13
  356. package/issues/lang/2440-shorthand.md +0 -8
  357. package/issues/lang/2450-destructuring.md +0 -12
  358. package/issues/lang/3110-function.md +0 -35
  359. package/issues/lang/3120-parameters.md +0 -9
  360. package/issues/lang/3130-body-const.md +0 -12
  361. package/issues/lang/3220-let.md +0 -11
  362. package/issues/lang/3240-export.md +0 -44
  363. package/issues/lang/3370-type-inference.md +0 -69
  364. package/issues/lang/3380-promise.md +0 -22
  365. package/issues/lang/3390-class.md +0 -3
  366. package/issues/lang/3410-expression.md +0 -12
  367. package/issues/lang/3420-one-parameter.md +0 -10
  368. package/issues/lang/3430-assignments.md +0 -23
  369. package/issues/lang/README.md +0 -193
  370. package/issues/test.f.ts +0 -58
  371. package/js/tokenizer/module.f.ts +0 -882
  372. package/js/tokenizer/test.f.ts +0 -617
  373. package/json/html/README.md +0 -49
  374. package/json/module.f.ts +0 -94
  375. package/json/parser/module.f.ts +0 -221
  376. package/json/parser/test.f.ts +0 -255
  377. package/json/serializer/module.f.ts +0 -74
  378. package/json/serializer/test.f.ts +0 -64
  379. package/json/test.f.ts +0 -48
  380. package/json/tokenizer/module.f.ts +0 -85
  381. package/json/tokenizer/test.f.ts +0 -290
  382. package/nanvm-lib/Cargo.toml +0 -6
  383. package/nanvm-lib/src/extension.rs +0 -130
  384. package/nanvm-lib/src/interface.rs +0 -133
  385. package/nanvm-lib/src/lib.rs +0 -7
  386. package/nanvm-lib/src/naive.rs +0 -236
  387. package/nanvm-lib/src/nanenum.rs +0 -236
  388. package/nanvm-lib/src/nullish.rs +0 -7
  389. package/nanvm-lib/src/sign.rs +0 -5
  390. package/nanvm-lib/src/simple.rs +0 -32
  391. package/nanvm-lib/tests/test.f.ts +0 -80
  392. package/nanvm-lib/tests/test.rs +0 -108
  393. package/nodejs/version/main.ts +0 -4
  394. package/nodejs/version/module.f.ts +0 -42
  395. package/text/README.md +0 -110
  396. package/text/ascii/module.f.ts +0 -219
  397. package/text/ascii/test.f.ts +0 -14
  398. package/text/module.f.ts +0 -30
  399. package/text/sgr/README.md +0 -3
  400. package/text/sgr/module.f.ts +0 -11
  401. package/text/test.f.ts +0 -19
  402. package/text/utf16/module.f.ts +0 -120
  403. package/text/utf16/test.f.ts +0 -107
  404. package/text/utf8/module.f.ts +0 -116
  405. package/text/utf8/test.f.ts +0 -125
  406. package/tsconfig.json +0 -104
  407. package/types/array/module.f.ts +0 -89
  408. package/types/array/test.f.ts +0 -88
  409. package/types/bigfloat/module.f.ts +0 -93
  410. package/types/bigfloat/test.f.ts +0 -218
  411. package/types/bigint/README.md +0 -35
  412. package/types/bigint/test.f.ts +0 -144
  413. package/types/bit_vec/README.md +0 -18
  414. package/types/bit_vec/test.f.ts +0 -129
  415. package/types/btree/README.md +0 -160
  416. package/types/btree/find/module.f.ts +0 -92
  417. package/types/btree/find/test.f.ts +0 -122
  418. package/types/btree/module.f.ts +0 -35
  419. package/types/btree/remove/module.f.ts +0 -151
  420. package/types/btree/remove/test.f.ts +0 -498
  421. package/types/btree/set/module.f.ts +0 -89
  422. package/types/btree/set/test.f.ts +0 -415
  423. package/types/btree/test.f.ts +0 -92
  424. package/types/btree/types/module.f.ts +0 -27
  425. package/types/byte_set/module.f.ts +0 -73
  426. package/types/byte_set/test.f.ts +0 -84
  427. package/types/function/compare/module.f.ts +0 -26
  428. package/types/function/compare/test.f.ts +0 -7
  429. package/types/function/module.f.ts +0 -43
  430. package/types/function/operator/module.f.ts +0 -65
  431. package/types/function/test.f.ts +0 -20
  432. package/types/list/module.f.ts +0 -350
  433. package/types/list/test.f.ts +0 -327
  434. package/types/map/module.f.ts +0 -65
  435. package/types/map/test.f.ts +0 -76
  436. package/types/nibble_set/module.f.ts +0 -34
  437. package/types/nibble_set/test.f.ts +0 -57
  438. package/types/nullable/module.f.ts +0 -9
  439. package/types/nullable/test.f.ts +0 -9
  440. package/types/number/module.f.ts +0 -20
  441. package/types/number/test.f.ts +0 -194
  442. package/types/object/module.f.ts +0 -30
  443. package/types/object/test.f.ts +0 -14
  444. package/types/range/module.f.ts +0 -10
  445. package/types/range/test.f.ts +0 -9
  446. package/types/range_map/module.f.ts +0 -70
  447. package/types/range_map/test.f.ts +0 -189
  448. package/types/result/module.f.ts +0 -20
  449. package/types/result/module.ts +0 -18
  450. package/types/sorted_list/module.f.ts +0 -83
  451. package/types/sorted_list/test.f.ts +0 -57
  452. package/types/sorted_set/module.f.ts +0 -36
  453. package/types/sorted_set/test.f.ts +0 -67
  454. package/types/string/module.f.ts +0 -26
  455. package/types/string/test.f.ts +0 -43
  456. package/types/string_set/module.f.ts +0 -37
  457. package/types/string_set/test.f.ts +0 -34
@@ -0,0 +1,529 @@
1
+ import * as tokenizer from "./module.f.js";
2
+ import * as list from "../../types/list/module.f.js";
3
+ const { toArray } = list;
4
+ import * as djs from "../module.f.js";
5
+ import * as o from "../../types/object/module.f.js";
6
+ const { sort } = o;
7
+ import * as encoding from "../../text/utf16/module.f.js";
8
+ const tokenizeString = s => toArray(tokenizer.tokenize(encoding.stringToList(s)));
9
+ const stringify = djs.stringify(sort);
10
+ export default {
11
+ djs: [
12
+ () => {
13
+ const result = tokenizeString('');
14
+ if (result.length !== 0) {
15
+ throw result;
16
+ }
17
+ },
18
+ () => {
19
+ const result = stringify(tokenizeString('{'));
20
+ if (result !== '[{"kind":"{"}]') {
21
+ throw result;
22
+ }
23
+ },
24
+ () => {
25
+ const result = stringify(tokenizeString('}'));
26
+ if (result !== '[{"kind":"}"}]') {
27
+ throw result;
28
+ }
29
+ },
30
+ () => {
31
+ const result = stringify(tokenizeString(':'));
32
+ if (result !== '[{"kind":":"}]') {
33
+ throw result;
34
+ }
35
+ },
36
+ () => {
37
+ const result = stringify(tokenizeString(','));
38
+ if (result !== '[{"kind":","}]') {
39
+ throw result;
40
+ }
41
+ },
42
+ () => {
43
+ const result = stringify(tokenizeString('['));
44
+ if (result !== '[{"kind":"["}]') {
45
+ throw result;
46
+ }
47
+ },
48
+ () => {
49
+ const result = stringify(tokenizeString(']'));
50
+ if (result !== '[{"kind":"]"}]') {
51
+ throw result;
52
+ }
53
+ },
54
+ () => {
55
+ const result = stringify(tokenizeString('ᄑ'));
56
+ if (result !== '[{"kind":"error","message":"unexpected character"}]') {
57
+ throw result;
58
+ }
59
+ },
60
+ () => {
61
+ const result = stringify(tokenizeString('{ \t\n\r}'));
62
+ if (result !== '[{"kind":"{"},{"kind":"nl"},{"kind":"}"}]') {
63
+ throw result;
64
+ }
65
+ },
66
+ () => {
67
+ const result = stringify(tokenizeString('""'));
68
+ if (result !== '[{"kind":"string","value":""}]') {
69
+ throw result;
70
+ }
71
+ },
72
+ () => {
73
+ const result = stringify(tokenizeString('"value"'));
74
+ if (result !== '[{"kind":"string","value":"value"}]') {
75
+ throw result;
76
+ }
77
+ },
78
+ () => {
79
+ const result = stringify(tokenizeString('"value'));
80
+ if (result !== '[{"kind":"error","message":"\\" are missing"}]') {
81
+ throw result;
82
+ }
83
+ },
84
+ () => {
85
+ const result = stringify(tokenizeString('"value1" "value2"'));
86
+ if (result !== '[{"kind":"string","value":"value1"},{"kind":"ws"},{"kind":"string","value":"value2"}]') {
87
+ throw result;
88
+ }
89
+ },
90
+ () => {
91
+ const result = stringify(tokenizeString('"'));
92
+ if (result !== '[{"kind":"error","message":"\\" are missing"}]') {
93
+ throw result;
94
+ }
95
+ },
96
+ () => {
97
+ const result = stringify(tokenizeString('"\\\\"'));
98
+ if (result !== '[{"kind":"string","value":"\\\\"}]') {
99
+ throw result;
100
+ }
101
+ },
102
+ () => {
103
+ const result = stringify(tokenizeString('"\\""'));
104
+ if (result !== '[{"kind":"string","value":"\\""}]') {
105
+ throw result;
106
+ }
107
+ },
108
+ () => {
109
+ const result = stringify(tokenizeString('"\\/"'));
110
+ if (result !== '[{"kind":"string","value":"/"}]') {
111
+ throw result;
112
+ }
113
+ },
114
+ () => {
115
+ const result = stringify(tokenizeString('"\\x"'));
116
+ if (result !== '[{"kind":"error","message":"unescaped character"},{"kind":"string","value":"x"}]') {
117
+ throw result;
118
+ }
119
+ },
120
+ () => {
121
+ const result = stringify(tokenizeString('"\\'));
122
+ if (result !== '[{"kind":"error","message":"\\" are missing"}]') {
123
+ throw result;
124
+ }
125
+ },
126
+ () => {
127
+ const result = stringify(tokenizeString('"\\b\\f\\n\\r\\t"'));
128
+ if (result !== '[{"kind":"string","value":"\\b\\f\\n\\r\\t"}]') {
129
+ throw result;
130
+ }
131
+ },
132
+ () => {
133
+ const result = stringify(tokenizeString('"\\u1234"'));
134
+ if (result !== '[{"kind":"string","value":"ሴ"}]') {
135
+ throw result;
136
+ }
137
+ },
138
+ () => {
139
+ const result = stringify(tokenizeString('"\\uaBcDEeFf"'));
140
+ if (result !== '[{"kind":"string","value":"ꯍEeFf"}]') {
141
+ throw result;
142
+ }
143
+ },
144
+ () => {
145
+ const result = stringify(tokenizeString('"\\uEeFg"'));
146
+ if (result !== '[{"kind":"error","message":"invalid hex value"},{"kind":"string","value":"g"}]') {
147
+ throw result;
148
+ }
149
+ },
150
+ () => {
151
+ const result = stringify(tokenizeString('0'));
152
+ if (result !== '[{"bf":[0n,0],"kind":"number","value":"0"}]') {
153
+ throw result;
154
+ }
155
+ },
156
+ () => {
157
+ const result = stringify(tokenizeString('[0]'));
158
+ if (result !== '[{"kind":"["},{"bf":[0n,0],"kind":"number","value":"0"},{"kind":"]"}]') {
159
+ throw result;
160
+ }
161
+ },
162
+ () => {
163
+ const result = stringify(tokenizeString('00'));
164
+ if (result !== '[{"kind":"error","message":"invalid number"}]') {
165
+ throw result;
166
+ }
167
+ },
168
+ () => {
169
+ const result = stringify(tokenizeString('0abc,'));
170
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"abc"},{"kind":","}]') {
171
+ throw result;
172
+ }
173
+ },
174
+ () => {
175
+ const result = stringify(tokenizeString('123456789012345678901234567890'));
176
+ if (result !== '[{"bf":[123456789012345678901234567890n,0],"kind":"number","value":"123456789012345678901234567890"}]') {
177
+ throw result;
178
+ }
179
+ },
180
+ () => {
181
+ const result = stringify(tokenizeString('{90}'));
182
+ if (result !== '[{"kind":"{"},{"bf":[90n,0],"kind":"number","value":"90"},{"kind":"}"}]') {
183
+ throw result;
184
+ }
185
+ },
186
+ () => {
187
+ const result = stringify(tokenizeString('1 2'));
188
+ if (result !== '[{"bf":[1n,0],"kind":"number","value":"1"},{"kind":"ws"},{"bf":[2n,0],"kind":"number","value":"2"}]') {
189
+ throw result;
190
+ }
191
+ },
192
+ () => {
193
+ const result = stringify(tokenizeString('0. 2'));
194
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"ws"},{"bf":[2n,0],"kind":"number","value":"2"}]') {
195
+ throw result;
196
+ }
197
+ },
198
+ () => {
199
+ const result = stringify(tokenizeString('10-0'));
200
+ if (result !== '[{"bf":[10n,0],"kind":"number","value":"10"},{"bf":[0n,0],"kind":"number","value":"-0"}]') {
201
+ throw result;
202
+ }
203
+ },
204
+ () => {
205
+ const result = stringify(tokenizeString('9a:'));
206
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"a"},{"kind":":"}]') {
207
+ throw result;
208
+ }
209
+ },
210
+ () => {
211
+ const result = stringify(tokenizeString('-10'));
212
+ if (result !== '[{"bf":[-10n,0],"kind":"number","value":"-10"}]') {
213
+ throw result;
214
+ }
215
+ },
216
+ () => {
217
+ const result = stringify(tokenizeString('-'));
218
+ if (result !== '[{"kind":"error","message":"invalid token"}]') {
219
+ throw result;
220
+ }
221
+ },
222
+ () => {
223
+ const result = stringify(tokenizeString('--'));
224
+ if (result !== '[{"kind":"error","message":"invalid token"}]') {
225
+ throw result;
226
+ }
227
+ },
228
+ () => {
229
+ const result = stringify(tokenizeString('---'));
230
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"error","message":"invalid token"}]') {
231
+ throw result;
232
+ }
233
+ },
234
+ () => {
235
+ const result = stringify(tokenizeString('-0'));
236
+ if (result !== '[{"bf":[0n,0],"kind":"number","value":"-0"}]') {
237
+ throw result;
238
+ }
239
+ },
240
+ () => {
241
+ const result = stringify(tokenizeString('-00'));
242
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"error","message":"invalid number"}]') {
243
+ throw result;
244
+ }
245
+ },
246
+ () => {
247
+ const result = stringify(tokenizeString('-.123'));
248
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"."},{"bf":[123n,0],"kind":"number","value":"123"}]') {
249
+ throw result;
250
+ }
251
+ },
252
+ () => {
253
+ const result = stringify(tokenizeString('0.01'));
254
+ if (result !== '[{"bf":[1n,-2],"kind":"number","value":"0.01"}]') {
255
+ throw result;
256
+ }
257
+ },
258
+ () => {
259
+ const result = stringify(tokenizeString('-0.9'));
260
+ if (result !== '[{"bf":[-9n,-1],"kind":"number","value":"-0.9"}]') {
261
+ throw result;
262
+ }
263
+ },
264
+ () => {
265
+ const result = stringify(tokenizeString('-0.'));
266
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"error","message":"invalid number"}]') {
267
+ throw result;
268
+ }
269
+ },
270
+ () => {
271
+ const result = stringify(tokenizeString('-0.]'));
272
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"error","message":"invalid number"},{"kind":"]"}]') {
273
+ throw result;
274
+ }
275
+ },
276
+ () => {
277
+ const result = stringify(tokenizeString('12.34'));
278
+ if (result !== '[{"bf":[1234n,-2],"kind":"number","value":"12.34"}]') {
279
+ throw result;
280
+ }
281
+ },
282
+ () => {
283
+ const result = stringify(tokenizeString('-12.00'));
284
+ if (result !== '[{"bf":[-1200n,-2],"kind":"number","value":"-12.00"}]') {
285
+ throw result;
286
+ }
287
+ },
288
+ () => {
289
+ const result = stringify(tokenizeString('-12.'));
290
+ if (result !== '[{"kind":"error","message":"invalid token"},{"kind":"error","message":"invalid number"}]') {
291
+ throw result;
292
+ }
293
+ },
294
+ () => {
295
+ const result = stringify(tokenizeString('12.]'));
296
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"]"}]') {
297
+ throw result;
298
+ }
299
+ },
300
+ () => {
301
+ const result = stringify(tokenizeString('0e1'));
302
+ if (result !== '[{"bf":[0n,1],"kind":"number","value":"0e1"}]') {
303
+ throw result;
304
+ }
305
+ },
306
+ () => {
307
+ const result = stringify(tokenizeString('0e+2'));
308
+ if (result !== '[{"bf":[0n,2],"kind":"number","value":"0e+2"}]') {
309
+ throw result;
310
+ }
311
+ },
312
+ () => {
313
+ const result = stringify(tokenizeString('0e-0'));
314
+ if (result !== '[{"bf":[0n,0],"kind":"number","value":"0e-0"}]') {
315
+ throw result;
316
+ }
317
+ },
318
+ () => {
319
+ const result = stringify(tokenizeString('12e0000'));
320
+ if (result !== '[{"bf":[12n,0],"kind":"number","value":"12e0000"}]') {
321
+ throw result;
322
+ }
323
+ },
324
+ () => {
325
+ const result = stringify(tokenizeString('-12e-0001'));
326
+ if (result !== '[{"bf":[-12n,-1],"kind":"number","value":"-12e-0001"}]') {
327
+ throw result;
328
+ }
329
+ },
330
+ () => {
331
+ const result = stringify(tokenizeString('-12.34e1234'));
332
+ if (result !== '[{"bf":[-1234n,1232],"kind":"number","value":"-12.34e1234"}]') {
333
+ throw result;
334
+ }
335
+ },
336
+ () => {
337
+ const result = stringify(tokenizeString('0e'));
338
+ if (result !== '[{"kind":"error","message":"invalid number"}]') {
339
+ throw result;
340
+ }
341
+ },
342
+ () => {
343
+ const result = stringify(tokenizeString('0e-'));
344
+ if (result !== '[{"kind":"error","message":"invalid number"}]') {
345
+ throw result;
346
+ }
347
+ },
348
+ () => {
349
+ const result = stringify(tokenizeString('ABCdef1234567890$_'));
350
+ if (result !== '[{"kind":"id","value":"ABCdef1234567890$_"}]') {
351
+ throw result;
352
+ }
353
+ },
354
+ () => {
355
+ const result = stringify(tokenizeString('{ABCdef1234567890$_}'));
356
+ if (result !== '[{"kind":"{"},{"kind":"id","value":"ABCdef1234567890$_"},{"kind":"}"}]') {
357
+ throw result;
358
+ }
359
+ },
360
+ () => {
361
+ const result = stringify(tokenizeString('123 _123'));
362
+ if (result !== '[{"bf":[123n,0],"kind":"number","value":"123"},{"kind":"ws"},{"kind":"id","value":"_123"}]') {
363
+ throw result;
364
+ }
365
+ },
366
+ () => {
367
+ const result = stringify(tokenizeString('123 $123'));
368
+ if (result !== '[{"bf":[123n,0],"kind":"number","value":"123"},{"kind":"ws"},{"kind":"id","value":"$123"}]') {
369
+ throw result;
370
+ }
371
+ },
372
+ () => {
373
+ const result = stringify(tokenizeString('123_123'));
374
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"_123"}]') {
375
+ throw result;
376
+ }
377
+ },
378
+ () => {
379
+ const result = stringify(tokenizeString('123$123'));
380
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"$123"}]') {
381
+ throw result;
382
+ }
383
+ },
384
+ () => {
385
+ const result = stringify(tokenizeString('1234567890n'));
386
+ if (result !== '[{"kind":"bigint","value":1234567890n}]') {
387
+ throw result;
388
+ }
389
+ },
390
+ () => {
391
+ const result = stringify(tokenizeString('0n'));
392
+ if (result !== '[{"kind":"bigint","value":0n}]') {
393
+ throw result;
394
+ }
395
+ },
396
+ () => {
397
+ const result = stringify(tokenizeString('[-1234567890n]'));
398
+ if (result !== '[{"kind":"["},{"kind":"bigint","value":-1234567890n},{"kind":"]"}]') {
399
+ throw result;
400
+ }
401
+ },
402
+ () => {
403
+ const result = stringify(tokenizeString('123.456n'));
404
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"n"}]') {
405
+ throw result;
406
+ }
407
+ },
408
+ () => {
409
+ const result = stringify(tokenizeString('123e456n'));
410
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"n"}]') {
411
+ throw result;
412
+ }
413
+ },
414
+ () => {
415
+ const result = stringify(tokenizeString('1234567890na'));
416
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"a"}]') {
417
+ throw result;
418
+ }
419
+ },
420
+ () => {
421
+ const result = stringify(tokenizeString('1234567890nn'));
422
+ if (result !== '[{"kind":"error","message":"invalid number"},{"kind":"id","value":"n"}]') {
423
+ throw result;
424
+ }
425
+ },
426
+ ],
427
+ id: [
428
+ () => {
429
+ const result = stringify(tokenizeString('err'));
430
+ if (result !== '[{"kind":"id","value":"err"}]') {
431
+ throw result;
432
+ }
433
+ },
434
+ () => {
435
+ const result = stringify(tokenizeString('{e}'));
436
+ if (result !== '[{"kind":"{"},{"kind":"id","value":"e"},{"kind":"}"}]') {
437
+ throw result;
438
+ }
439
+ },
440
+ () => {
441
+ const result = stringify(tokenizeString('tru'));
442
+ if (result !== '[{"kind":"id","value":"tru"}]') {
443
+ throw result;
444
+ }
445
+ },
446
+ () => {
447
+ const result = stringify(tokenizeString('break'));
448
+ if (result !== '[{"kind":"id","value":"break"}]') {
449
+ throw result;
450
+ }
451
+ },
452
+ ],
453
+ keywords: [
454
+ () => {
455
+ const result = stringify(tokenizeString('true'));
456
+ if (result !== '[{"kind":"true"}]') {
457
+ throw result;
458
+ }
459
+ },
460
+ () => {
461
+ const result = stringify(tokenizeString('false'));
462
+ if (result !== '[{"kind":"false"}]') {
463
+ throw result;
464
+ }
465
+ },
466
+ () => {
467
+ const result = stringify(tokenizeString('null'));
468
+ if (result !== '[{"kind":"null"}]') {
469
+ throw result;
470
+ }
471
+ },
472
+ () => {
473
+ const result = stringify(tokenizeString('undefined'));
474
+ if (result !== '[{"kind":"undefined"}]') {
475
+ throw result;
476
+ }
477
+ },
478
+ () => {
479
+ const result = stringify(tokenizeString('[null]'));
480
+ if (result !== '[{"kind":"["},{"kind":"null"},{"kind":"]"}]') {
481
+ throw result;
482
+ }
483
+ },
484
+ ],
485
+ comments: [
486
+ () => {
487
+ const result = stringify(tokenizeString('//singleline comment'));
488
+ if (result !== '[{"kind":"//","value":"singleline comment"}]') {
489
+ throw result;
490
+ }
491
+ },
492
+ () => {
493
+ const result = stringify(tokenizeString('true//singleline comment\nfalse'));
494
+ if (result !== '[{"kind":"true"},{"kind":"//","value":"singleline comment"},{"kind":"nl"},{"kind":"false"}]') {
495
+ throw result;
496
+ }
497
+ },
498
+ () => {
499
+ const result = stringify(tokenizeString('/* multiline comment */'));
500
+ if (result !== '[{"kind":"/*","value":" multiline comment "}]') {
501
+ throw result;
502
+ }
503
+ },
504
+ () => {
505
+ const result = stringify(tokenizeString('/* multiline comment *'));
506
+ if (result !== '[{"kind":"error","message":"*/ expected"}]') {
507
+ throw result;
508
+ }
509
+ },
510
+ () => {
511
+ const result = stringify(tokenizeString('/* multiline comment '));
512
+ if (result !== '[{"kind":"error","message":"*/ expected"}]') {
513
+ throw result;
514
+ }
515
+ },
516
+ () => {
517
+ const result = stringify(tokenizeString('/* multiline comment \n * **/'));
518
+ if (result !== '[{"kind":"/*","value":" multiline comment \\n * *"},{"kind":"nl"}]') {
519
+ throw result;
520
+ }
521
+ },
522
+ () => {
523
+ const result = stringify(tokenizeString('/* multiline comment *\n * **/'));
524
+ if (result !== '[{"kind":"/*","value":" multiline comment *\\n * *"},{"kind":"nl"}]') {
525
+ throw result;
526
+ }
527
+ },
528
+ ]
529
+ };
@@ -0,0 +1,5 @@
1
+ type Result = readonly [readonly string[], ToResult];
2
+ type ToResult = (codePoint: number) => Result;
3
+ export declare const terminal = -1;
4
+ export declare const init: ToResult;
5
+ export {};
@@ -0,0 +1,75 @@
1
+ import * as operator from "../types/function/operator/module.f.js";
2
+ import { merge as rangeMapMerge, fromRange, get, } from "../types/range_map/module.f.js";
3
+ import * as list from "../types/list/module.f.js";
4
+ const { reduce: listReduce } = list;
5
+ import { range as asciiRange } from "../text/ascii/module.f.js";
6
+ import { fn } from "../types/function/module.f.js";
7
+ import { one } from "../types/range/module.f.js";
8
+ const { toArray, map } = list;
9
+ const fromCharCode = String.fromCharCode;
10
+ const unexpectedSymbol = codePoint => [[`unexpected symbol ${codePoint}`], unexpectedSymbol];
11
+ const def = () => unexpectedSymbol;
12
+ const union = a => b => {
13
+ if (a === def || a === b) {
14
+ return b;
15
+ }
16
+ if (b === def) {
17
+ return a;
18
+ }
19
+ throw [a, b];
20
+ };
21
+ const empty = [];
22
+ const reduce = (a) => {
23
+ const merge = rangeMapMerge({
24
+ union,
25
+ equal: operator.strictEqual,
26
+ });
27
+ return toArray(listReduce(merge)(empty)(a));
28
+ };
29
+ const codePointRange = fromRange(def);
30
+ const range = fn(asciiRange).then(codePointRange).result;
31
+ const rangeSet = (l) => (f) => {
32
+ const codePointRange = fromRange(def);
33
+ const g = r => codePointRange(asciiRange(r))(f);
34
+ return reduce(map(g)(l));
35
+ };
36
+ const create = (a) => {
37
+ const i = reduce(a);
38
+ const x = get(def);
39
+ return v => c => x(c)(i)(v)(c);
40
+ };
41
+ export const terminal = -1;
42
+ const toInit = () => () => [[], init];
43
+ export const init = create([
44
+ codePointRange(one(terminal))(toInit),
45
+ rangeSet(['\t', ' ', '\n', '\r'])(toInit),
46
+ range('!')(() => () => [['!'], unexpectedSymbol]),
47
+ range('"')(() => () => [['"'], unexpectedSymbol]),
48
+ rangeSet(['$', '_', 'AZ', 'az'])(() => c => [[fromCharCode(c)], unexpectedSymbol]),
49
+ range('%')(() => () => [['%'], unexpectedSymbol]),
50
+ range('&')(() => () => [['&'], unexpectedSymbol]),
51
+ range("'")(() => () => [["'"], unexpectedSymbol]),
52
+ range('(')(() => () => [['('], unexpectedSymbol]),
53
+ range(')')(() => () => [[')'], unexpectedSymbol]),
54
+ range('*')(() => () => [['*'], unexpectedSymbol]),
55
+ range('+')(() => () => [['+'], unexpectedSymbol]),
56
+ range(',')(() => () => [[','], unexpectedSymbol]),
57
+ range('-')(() => () => [['-'], unexpectedSymbol]),
58
+ range('.')(() => () => [['.'], unexpectedSymbol]),
59
+ range('/')(() => () => [['/'], unexpectedSymbol]),
60
+ range('09')(() => a => [[fromCharCode(a)], unexpectedSymbol]),
61
+ range(':')(() => () => [[':'], unexpectedSymbol]),
62
+ range(';')(() => () => [[';'], unexpectedSymbol]),
63
+ range('<')(() => () => [['<'], unexpectedSymbol]),
64
+ range('=')(() => () => [['='], unexpectedSymbol]),
65
+ range('>')(() => () => [['>'], unexpectedSymbol]),
66
+ range('?')(() => () => [['?'], unexpectedSymbol]),
67
+ range('[')(() => () => [['['], unexpectedSymbol]),
68
+ range(']')(() => () => [[']'], unexpectedSymbol]),
69
+ range('^')(() => () => [['^'], unexpectedSymbol]),
70
+ range('`')(() => () => [['`'], unexpectedSymbol]),
71
+ range('{')(() => () => [['{'], unexpectedSymbol]),
72
+ range('|')(() => () => [['|'], unexpectedSymbol]),
73
+ range('}')(() => () => [['}'], unexpectedSymbol]),
74
+ range('~')(() => () => [['~'], unexpectedSymbol]),
75
+ ])(undefined);
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ a: () => void;
3
+ };
4
+ export default _default;
package/fsc/test.f.js ADDED
@@ -0,0 +1,19 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as ascii from "../text/ascii/module.f.js";
3
+ const { one } = ascii;
4
+ import * as j from "../json/module.f.js";
5
+ const { stringify } = j;
6
+ const s = stringify(i => i);
7
+ /** @type {} */
8
+ const f = v => {
9
+ const n = one(v);
10
+ return s(_.init(n)[0]);
11
+ };
12
+ export default {
13
+ a: () => {
14
+ const x = f('1');
15
+ if (x != '["1"]') {
16
+ throw x;
17
+ }
18
+ }
19
+ };
@@ -0,0 +1,13 @@
1
+ import * as list from '../types/list/module.f.ts';
2
+ import * as byteSet from '../types/byte_set/module.f.ts';
3
+ import * as rangeMap from '../types/range_map/module.f.ts';
4
+ type Rule = readonly [string, byteSet.ByteSet, string];
5
+ export type Grammar = list.List<Rule>;
6
+ type Dfa = {
7
+ readonly [state in string]: rangeMap.RangeMapArray<string>;
8
+ };
9
+ export declare const toRange: (s: string) => byteSet.ByteSet;
10
+ export declare const toUnion: (s: string) => byteSet.ByteSet;
11
+ export declare const dfa: (grammar: Grammar) => Dfa;
12
+ export declare const run: (dfa: Dfa) => (input: list.List<number>) => list.List<string>;
13
+ export {};