1 | "use strict";
|
2 |
|
3 | var array = require("./array.js");
|
4 | var primitive = require("./primitive.js");
|
5 | var utils = require("./utils.js");
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 | function fromCode(code) {
|
12 | return String.fromCharCode(code);
|
13 | }
|
14 |
|
15 | function toCode(c) {
|
16 | return c.charCodeAt(0);
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | var char = primitive.nat(0xff).smap(fromCode, toCode);
|
23 |
|
24 |
|
25 |
|
26 |
|
27 | var asciichar = primitive.integer(0x20, 0x7e).smap(fromCode, toCode);
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | var string = array.array(char).smap(utils.charArrayToString, utils.stringToCharArray);
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | var nestring = array.nearray(char).smap(utils.charArrayToString, utils.stringToCharArray);
|
38 |
|
39 |
|
40 |
|
41 |
|
42 | var asciistring = array.array(asciichar).smap(utils.charArrayToString, utils.stringToCharArray);
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | var asciinestring = array.nearray(asciichar).smap(utils.charArrayToString, utils.stringToCharArray);
|
48 |
|
49 | module.exports = {
|
50 | char: char,
|
51 | asciichar: asciichar,
|
52 | string: string,
|
53 | nestring: nestring,
|
54 | asciistring: asciistring,
|
55 | asciinestring: asciinestring,
|
56 | };
|