Download Jar. Libraryless. Click here for Pure Java version (4471L/29K).
1 | !7 |
2 | |
3 | sS bla = [[ |
4 | The images "9176714c9a935fc91e14595dbb3adddf 35731666e72dd0c9448f616ff3a7464a da9bc5a24bd503e898f69ad43bb9b92e" are the characters "yet". |
5 | The images "412f9e0f8e177817a4fa285415c5a13f 386b289407599f31e3a7c57c3adb2587 6cd2a2284a5a6fda3a7cad3e3a048671 b0c47c014d665ec5b658f510c258dc47 b273ff598fe6afa04cfed9f9e8fb4109" are the grouped characters "[Ob]ject". |
6 | The images "175116b749670b7b65707c10c935b42c ddaf2b9c198818c49628387ecc2910ed 3777597e39eb0de16c022293c8c91cc0 fad86bda3f716ef4e7fa9d199f6c4383 35731666e72dd0c9448f616ff3a7464a 03b96c30adaaed5b60cea4ab9bc37263" are the characters "images". |
7 | ]]; |
8 | |
9 | p-typewriter {
|
10 | Bits bits = new Bits(bla); |
11 | print(bits.n); |
12 | printStruct(bits.toByteArray()); |
13 | print(quote(bits.getString())); |
14 | |
15 | S exp = [[chunks(8).splitAt("\"")]];
|
16 | calcPrint(exp, bits); |
17 | exp = [[chunks(8).splitAt("\"").get(1)]];
|
18 | calcPrint(exp, bits); |
19 | exp += [[.chunks(8).splitAt(" ")]];
|
20 | calcPrint(exp, bits); |
21 | } |
22 | |
23 | static void calcPrint(S exp, O obj) {
|
24 | print(exp); |
25 | print(" " + structureOrText(bits_prettyPrint(calcExp(exp, obj))));
|
26 | } |
27 | |
28 | static O calcExp(S exp, O obj) {
|
29 | L<S> tok = javaTokC(exp); |
30 | while (nempty(tok)) {
|
31 | S f = first(tok); |
32 | assertIsIdentifier(f); |
33 | if (eq(get(tok, 1), "(")) {
|
34 | assertEquals("(", tok.get(1));
|
35 | assertEquals(")", tok.get(3));
|
36 | S t = tok.get(2); |
37 | O arg; |
38 | if (isQuoted(t)) arg = unquote(t); |
39 | else if (isInteger(t)) arg = parseInt(t); |
40 | else fail("Unknown argument: " + quote(t));
|
41 | obj = call(mc(), "bits_" + f, obj, arg); |
42 | tok = subList(tok, 4); |
43 | } else {
|
44 | obj = call(mc(), "bits_" + f, obj); |
45 | tok = subList(tok, 1); |
46 | } |
47 | if (l(tok) == 0) break; |
48 | assertEquals(".", tok.get(0));
|
49 | tok = subList(tok, 1); |
50 | } |
51 | ret obj; |
52 | } |
53 | |
54 | static S bits_prettyPrint(O o) {
|
55 | if (o instanceof Bits) |
56 | ret o/Bits.getString(); |
57 | if (isListOfElementType(o, Bits)) |
58 | ret struct(map(func(Bits b) { b.getString() }, (L) o));
|
59 | ret struct(o); |
60 | } |
61 | |
62 | static L<Bits> bits_chunks(Bits bits, int width) {
|
63 | ret bitsFullChunks(bits, width); |
64 | } |
65 | |
66 | static L<Bits> bits_splitAt(L<Bits> l, S s) {
|
67 | ret splitBitsAtElement(l, new Bits(s)); |
68 | } |
69 | |
70 | static O bits_get(L l, int idx) {
|
71 | ret get(l, idx); |
72 | } |
Began life as a copy of #1006137
download show line numbers debug dex old transpilations
Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, sawdedvomwva, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1006146 |
| Snippet name: | Bit Analysis 2 [evaluate expressions, works] |
| Eternal ID of this version: | #1006146/2 |
| Text MD5: | 0a848aedf657891775b42bccd2fb7e1b |
| Transpilation MD5: | 8175ac289e645b14d40540598867e5e2 |
| Author: | stefan |
| Category: | javax / a.i. |
| Type: | JavaX source code (desktop) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2019-11-19 22:44:27 |
| Source code size: | 2272 bytes / 72 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 863 / 1708 |
| Version history: | 1 change(s) |
| Referenced in: | [show references] |