functionalscript 0.3.4 → 0.3.5

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,63 @@
1
+ import * as list from "../types/list/module.f.js";
2
+ const { flat, map } = list;
3
+ import * as string from "../types/string/module.f.js";
4
+ const { concat } = string;
5
+ import * as O from "../types/object/module.f.js";
6
+ import * as f from "../types/function/module.f.js";
7
+ const { compose, fn } = f;
8
+ const { entries } = Object;
9
+ import * as bi from "../types/bigint/module.f.js";
10
+ const { serialize: bigintSerialize } = bi;
11
+ import * as j from "../json/serializer/module.f.js";
12
+ const { objectWrap, arrayWrap, stringSerialize, numberSerialize, nullSerialize, boolSerialize } = j;
13
+ import * as djs from "./serializer/module.f.js";
14
+ const { undefinedSerialize } = djs;
15
+ const colon = [':'];
16
+ export const serialize = sort => {
17
+ const propertySerialize = ([k, v]) => flat([
18
+ stringSerialize(k),
19
+ colon,
20
+ f(v)
21
+ ]);
22
+ const mapPropertySerialize = map(propertySerialize);
23
+ const objectSerialize = fn(entries)
24
+ .then(sort)
25
+ .then(mapPropertySerialize)
26
+ .then(objectWrap)
27
+ .result;
28
+ const f = value => {
29
+ switch (typeof value) {
30
+ case 'boolean': {
31
+ return boolSerialize(value);
32
+ }
33
+ case 'number': {
34
+ return numberSerialize(value);
35
+ }
36
+ case 'string': {
37
+ return stringSerialize(value);
38
+ }
39
+ case 'bigint': {
40
+ return [bigintSerialize(value)];
41
+ }
42
+ default: {
43
+ if (value === null) {
44
+ return nullSerialize;
45
+ }
46
+ if (value === undefined) {
47
+ return undefinedSerialize;
48
+ }
49
+ if (value instanceof Array) {
50
+ return arraySerialize(value);
51
+ }
52
+ return objectSerialize(value);
53
+ }
54
+ }
55
+ };
56
+ const arraySerialize = compose(map(f))(arrayWrap);
57
+ return f;
58
+ };
59
+ /**
60
+ * The standard `JSON.stringify` rules determined by
61
+ * https://262.ecma-international.org/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
62
+ */
63
+ export const stringify = sort => compose(serialize(sort))(concat);
@@ -0,0 +1,12 @@
1
+ import * as result from '../../types/result/module.f.ts';
2
+ import { type List } from '../../types/list/module.f.ts';
3
+ import * as tokenizerT from '../tokenizer/module.f.ts';
4
+ export type DjsModule = [readonly string[], readonly DjsConst[]];
5
+ export type DjsConst = boolean | string | number | null | bigint | undefined | DjsModuleRef | DjsArray | DjsObject;
6
+ type DjsModuleRef = ['aref' | 'cref', number];
7
+ type DjsArray = ['array', readonly DjsConst[]];
8
+ export type DjsObject = {
9
+ readonly [k in string]: DjsConst;
10
+ };
11
+ export declare const parse: (tokenList: List<tokenizerT.DjsToken>) => result.Result<DjsModule, string>;
12
+ export {};
@@ -0,0 +1,333 @@
1
+ import * as result from "../../types/result/module.f.js";
2
+ import { fold, first, drop, toArray, length, concat } from "../../types/list/module.f.js";
3
+ import * as Operator from "../../types/function/operator/module.f.js";
4
+ import * as tokenizerT from "../tokenizer/module.f.js";
5
+ import { setReplace, at } from "../../types/map/module.f.js";
6
+ import * as o from "../../types/object/module.f.js";
7
+ const { fromMap } = o;
8
+ const parseInitialOp = token => state => {
9
+ switch (token.kind) {
10
+ case 'ws':
11
+ case 'nl':
12
+ case '//':
13
+ case '/*': return state;
14
+ case 'id': {
15
+ switch (token.value) {
16
+ case 'import': return { ...state, state: 'import' };
17
+ case 'const': return { ...state, state: 'const' };
18
+ case 'export': return { ...state, state: 'export' };
19
+ }
20
+ }
21
+ }
22
+ return { state: 'error', message: 'unexpected token' };
23
+ };
24
+ const parseNewLineRequiredOp = token => state => {
25
+ switch (token.kind) {
26
+ case 'ws':
27
+ case '//':
28
+ case '/*': return state;
29
+ case 'nl': return { ...state, state: '' };
30
+ default: return { state: 'error', message: 'unexpected token' };
31
+ }
32
+ };
33
+ const parseExportOp = token => state => {
34
+ switch (token.kind) {
35
+ case 'ws':
36
+ case 'nl':
37
+ case '//':
38
+ case '/*': return state;
39
+ case 'id': {
40
+ if (token.value === 'default')
41
+ return { ...state, state: 'exportValue', valueState: '', top: null, stack: null };
42
+ }
43
+ }
44
+ return { state: 'error', message: 'unexpected token' };
45
+ };
46
+ const parseResultOp = token => state => {
47
+ switch (token.kind) {
48
+ case 'ws':
49
+ case 'nl':
50
+ case '//':
51
+ case '/*': return state;
52
+ default: return { state: 'error', message: 'unexpected token' };
53
+ }
54
+ };
55
+ const parseConstOp = token => state => {
56
+ switch (token.kind) {
57
+ case 'ws':
58
+ case 'nl':
59
+ case '//':
60
+ case '/*': return state;
61
+ case 'id': {
62
+ if (at(token.value)(state.module.refs) !== null)
63
+ return { state: 'error', message: 'duplicate id' };
64
+ let cref = ['cref', length(state.module.consts)];
65
+ let refs = setReplace(token.value)(cref)(state.module.refs);
66
+ return { ...state, state: 'const+name', module: { ...state.module, refs: refs } };
67
+ }
68
+ default: return { state: 'error', message: 'unexpected token' };
69
+ }
70
+ };
71
+ const parseConstNameOp = token => state => {
72
+ switch (token.kind) {
73
+ case 'ws':
74
+ case 'nl':
75
+ case '//':
76
+ case '/*': return state;
77
+ case '=': return { ...state, state: 'constValue', valueState: '', top: null, stack: null };
78
+ default: return { state: 'error', message: 'unexpected token' };
79
+ }
80
+ };
81
+ const parseImportOp = token => state => {
82
+ switch (token.kind) {
83
+ case 'ws':
84
+ case 'nl':
85
+ case '//':
86
+ case '/*': return state;
87
+ case 'id': {
88
+ if (at(token.value)(state.module.refs) !== null) {
89
+ return { state: 'error', message: 'duplicate id' };
90
+ }
91
+ let aref = ['aref', length(state.module.modules)];
92
+ let refs = setReplace(token.value)(aref)(state.module.refs);
93
+ return { ...state, state: 'import+name', module: { ...state.module, refs: refs } };
94
+ }
95
+ default: return { state: 'error', message: 'unexpected token' };
96
+ }
97
+ };
98
+ const parseImportNameOp = token => state => {
99
+ switch (token.kind) {
100
+ case 'ws':
101
+ case 'nl':
102
+ case '//':
103
+ case '/*': return state;
104
+ case 'id': {
105
+ if (token.value === 'from')
106
+ return { ...state, state: 'import+from' };
107
+ }
108
+ }
109
+ return { state: 'error', message: 'unexpected token' };
110
+ };
111
+ const parseImportFromOp = token => state => {
112
+ switch (token.kind) {
113
+ case 'ws':
114
+ case 'nl':
115
+ case '//':
116
+ case '/*': return state;
117
+ case 'string': {
118
+ const modules = concat(state.module.modules)([token.value]);
119
+ return { ...state, state: 'nl', module: { ...state.module, modules: modules } };
120
+ }
121
+ default: return { state: 'error', message: 'unexpected token' };
122
+ }
123
+ };
124
+ const addKeyToObject = obj => key => (['object', obj[1], key]);
125
+ const addValueToObject = obj => value => (['object', setReplace(obj[2])(value)(obj[1]), '']);
126
+ const addToArray = array => value => (['array', concat(array[1])([value])]);
127
+ const pushKey = state => key => {
128
+ if (state.top?.[0] === 'object') {
129
+ return { ...state, valueState: '{k', top: addKeyToObject(state.top)(key), stack: state.stack };
130
+ }
131
+ return { state: 'error', message: 'error' };
132
+ };
133
+ const pushValue = state => value => {
134
+ if (state.top === null) {
135
+ let consts = concat(state.module.consts)([value]);
136
+ switch (state.state) {
137
+ case 'exportValue': return { ...state, state: 'result', module: { ...state.module, consts: consts } };
138
+ case 'constValue': return { ...state, state: 'nl', module: { ...state.module, consts: consts } };
139
+ }
140
+ }
141
+ if (state.top?.[0] === 'array') {
142
+ return { ...state, valueState: '[v', top: addToArray(state.top)(value), stack: state.stack };
143
+ }
144
+ return { ...state, valueState: '{v', top: addValueToObject(state.top)(value), stack: state.stack };
145
+ };
146
+ const pushRef = state => name => {
147
+ const ref = at(name)(state.module.refs);
148
+ if (ref === null)
149
+ return { state: 'error', message: 'const not found' };
150
+ return pushValue(state)(ref);
151
+ };
152
+ const startArray = state => {
153
+ const newStack = state.top === null ? null : { first: state.top, tail: state.stack };
154
+ return { ...state, valueState: '[', top: ['array', null], stack: newStack };
155
+ };
156
+ const endArray = state => {
157
+ const top = state.top;
158
+ const newState = { ...state, valueState: '', top: first(null)(state.stack), stack: drop(1)(state.stack) };
159
+ if (top !== null && top[0] === 'array') {
160
+ const array = ['array', toArray(top[1])];
161
+ return pushValue(newState)(array);
162
+ }
163
+ return pushValue(newState)(null);
164
+ };
165
+ const startObject = state => {
166
+ const newStack = state.top === null ? null : { first: state.top, tail: state.stack };
167
+ return { ...state, valueState: '{', top: ['object', null, ''], stack: newStack };
168
+ };
169
+ const endObject = state => {
170
+ const obj = state?.top !== null && state?.top[0] === 'object' ? fromMap(state.top[1]) : null;
171
+ const newState = { ...state, valueState: '', top: first(null)(state.stack), stack: drop(1)(state.stack) };
172
+ return pushValue(newState)(obj);
173
+ };
174
+ const tokenToValue = token => {
175
+ switch (token.kind) {
176
+ case 'null': return null;
177
+ case 'false': return false;
178
+ case 'true': return true;
179
+ case 'number': return parseFloat(token.value);
180
+ case 'string': return token.value;
181
+ case 'bigint': return token.value;
182
+ case 'undefined': return undefined;
183
+ default: return null;
184
+ }
185
+ };
186
+ const isValueToken = token => {
187
+ switch (token.kind) {
188
+ case 'null':
189
+ case 'false':
190
+ case 'true':
191
+ case 'number':
192
+ case 'string':
193
+ case 'bigint':
194
+ case 'undefined': return true;
195
+ default: return false;
196
+ }
197
+ };
198
+ const parseValueOp = token => state => {
199
+ if (isValueToken(token)) {
200
+ return pushValue(state)(tokenToValue(token));
201
+ }
202
+ switch (token.kind) {
203
+ case 'id': return pushRef(state)(token.value);
204
+ case '[': return startArray(state);
205
+ case '{': return startObject(state);
206
+ case 'ws':
207
+ case 'nl':
208
+ case '//':
209
+ case '/*': return state;
210
+ default: return { state: 'error', message: 'unexpected token' };
211
+ }
212
+ };
213
+ const parseArrayStartOp = token => state => {
214
+ if (isValueToken(token)) {
215
+ return pushValue(state)(tokenToValue(token));
216
+ }
217
+ switch (token.kind) {
218
+ case 'id': return pushRef(state)(token.value);
219
+ case '[': return startArray(state);
220
+ case ']': return endArray(state);
221
+ case '{': return startObject(state);
222
+ case 'ws':
223
+ case 'nl':
224
+ case '//':
225
+ case '/*': return state;
226
+ default: return { state: 'error', message: 'unexpected token' };
227
+ }
228
+ };
229
+ const parseArrayValueOp = token => state => {
230
+ switch (token.kind) {
231
+ case ']': return endArray(state);
232
+ case ',': return { ...state, valueState: '[,', top: state.top, stack: state.stack };
233
+ case 'ws':
234
+ case 'nl':
235
+ case '//':
236
+ case '/*': return state;
237
+ default: return { state: 'error', message: 'unexpected token' };
238
+ }
239
+ };
240
+ const parseObjectStartOp = token => state => {
241
+ switch (token.kind) {
242
+ case 'string': return pushKey(state)(token.value);
243
+ case '}': return endObject(state);
244
+ case 'ws':
245
+ case 'nl':
246
+ case '//':
247
+ case '/*': return state;
248
+ default: return { state: 'error', message: 'unexpected token' };
249
+ }
250
+ };
251
+ const parseObjectKeyOp = token => state => {
252
+ switch (token.kind) {
253
+ case ':': return { ...state, valueState: '{:', top: state.top, stack: state.stack };
254
+ case 'ws':
255
+ case 'nl':
256
+ case '//':
257
+ case '/*': return state;
258
+ default: return { state: 'error', message: 'unexpected token' };
259
+ }
260
+ };
261
+ const parseObjectColonOp = token => state => {
262
+ if (isValueToken(token)) {
263
+ return pushValue(state)(tokenToValue(token));
264
+ }
265
+ switch (token.kind) {
266
+ case 'id': return pushRef(state)(token.value);
267
+ case '[': return startArray(state);
268
+ case '{': return startObject(state);
269
+ case 'ws':
270
+ case 'nl':
271
+ case '//':
272
+ case '/*': return state;
273
+ default: return { state: 'error', message: 'unexpected token' };
274
+ }
275
+ };
276
+ const parseObjectNextOp = token => state => {
277
+ switch (token.kind) {
278
+ case '}': return endObject(state);
279
+ case ',': return { ...state, valueState: '{,', top: state.top, stack: state.stack };
280
+ case 'ws':
281
+ case 'nl':
282
+ case '//':
283
+ case '/*': return state;
284
+ default: return { state: 'error', message: 'unexpected token' };
285
+ }
286
+ };
287
+ const parseObjectCommaOp = token => state => {
288
+ switch (token.kind) {
289
+ case 'string': return pushKey(state)(token.value);
290
+ case 'ws':
291
+ case 'nl':
292
+ case '//':
293
+ case '/*': return state;
294
+ default: return { state: 'error', message: 'unexpected token' };
295
+ }
296
+ };
297
+ const foldOp = token => state => {
298
+ switch (state.state) {
299
+ case '': return parseInitialOp(token)(state);
300
+ case 'nl': return parseNewLineRequiredOp(token)(state);
301
+ case 'import': return parseImportOp(token)(state);
302
+ case 'import+name': return parseImportNameOp(token)(state);
303
+ case 'import+from': return parseImportFromOp(token)(state);
304
+ case 'const': return parseConstOp(token)(state);
305
+ case 'const+name': return parseConstNameOp(token)(state);
306
+ case 'export': return parseExportOp(token)(state);
307
+ case 'result': return parseResultOp(token)(state);
308
+ case 'error': return { state: 'error', message: state.message };
309
+ case 'constValue':
310
+ case 'exportValue':
311
+ {
312
+ switch (state.valueState) {
313
+ case '': return parseValueOp(token)(state);
314
+ case '[': return parseArrayStartOp(token)(state);
315
+ case '[v': return parseArrayValueOp(token)(state);
316
+ case '[,': return parseValueOp(token)(state);
317
+ case '{': return parseObjectStartOp(token)(state);
318
+ case '{k': return parseObjectKeyOp(token)(state);
319
+ case '{:': return parseObjectColonOp(token)(state);
320
+ case '{v': return parseObjectNextOp(token)(state);
321
+ case '{,': return parseObjectCommaOp(token)(state);
322
+ }
323
+ }
324
+ }
325
+ };
326
+ export const parse = (tokenList) => {
327
+ const state = fold(foldOp)({ state: '', module: { refs: null, modules: null, consts: null } })(tokenList);
328
+ switch (state.state) {
329
+ case 'result': return result.ok([toArray(state.module.modules), toArray(state.module.consts)]);
330
+ case 'error': return result.error(state.message);
331
+ default: return result.error('unexpected end');
332
+ }
333
+ };
@@ -0,0 +1,12 @@
1
+ declare const _default: {
2
+ valid: (() => void)[];
3
+ invalid: (() => void)[];
4
+ validWhiteSpaces: (() => void)[];
5
+ invalidModule: (() => void)[];
6
+ validWithConst: (() => void)[];
7
+ invalidWithConst: (() => void)[];
8
+ validWithArgs: (() => void)[];
9
+ invalidWithArgs: (() => void)[];
10
+ comments: (() => void)[];
11
+ };
12
+ export default _default;