diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2019-03-20 15:55:57 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2019-03-20 15:55:57 -0700 |
| commit | e665d9725c4bb02f4c18d16527367f424cb880fa (patch) | |
| tree | aed161ee6b338c2bad2312591f746459414ccafa /lib/base64/init.nom | |
| parent | 606fd090002f3d545cbd58440e96624907846f45 (diff) | |
Auto-updated to 7.0.0 syntax and removed some shims.
Diffstat (limited to 'lib/base64/init.nom')
| -rw-r--r-- | lib/base64/init.nom | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/base64/init.nom b/lib/base64/init.nom index 5257519..9028c99 100644 --- a/lib/base64/init.nom +++ b/lib/base64/init.nom @@ -1,16 +1,17 @@ -#!/usr/bin/env nomsu -V6.15.13.8 -# +#!/usr/bin/env nomsu -V7.0.0 + +### This file defines actions for encoding/decoding base 64, as specified in: https://tools.ietf.org/html/rfc4648 $b64_str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" -$b64_chars = [: for $ in 1 to (#$b64_str): add ($b64_str, character $)] -$reverse_b64 = {: for $c in $b64_chars at $i: add $c = ($i - 1)} +$b64_chars = [: for $ in (1 to #$b64_str): add ($b64_str, character $)] +$reverse_b64 = {: for ($i = $c) in $b64_chars: add $c = ($i - 1)} $reverse_b64."=" = 64 -set $reverse_b64's metatable to {.__index = (-> 0)} +set $reverse_b64's metatable to {.__index = ->0} test: $cases = ["", "Zg==", "Zm8=", "Zm9v", "Zm9vYg==", "Zm9vYmE=", "Zm9vYmFy"] - for $len = $encoded in $cases: + for ($len = $encoded) in $cases: $plain = ("foobar", from 1 to ($len - 1)) assume (base64 $plain) == $encoded assume (base64 decode $encoded) == $plain @@ -18,10 +19,10 @@ test: external: [base64 $str, base64 encode $str, $str base64] all mean: $chars = [] - for $i in 1 to (#$str) via 3: + for $i in (1 to #$str by 3): $bytes = [=lua "\$str:byte(\$i, \($i + 2))"] $chars, add $b64_chars.((($bytes.1 & 252) >> 2) + 1) - if (#$bytes) is: + if #$bytes is: 3: $chars, add $b64_chars.((($bytes.1 & 3) << 4) + (($bytes.2 & 240) >> 4) + 1) $chars, add $b64_chars.((($bytes.2 & 15) << 2) + (($bytes.3 & 192) >> 6) + 1) @@ -40,8 +41,8 @@ external: (chr $) means (=lua "string.char(\$)") [decode base64 $str, $str base64 decoded, base64 decode $str] all mean: $chars = [] - for $i in 1 to (#$str) via 4: - $indices = [: for $j in $i to ($i + 3): add $reverse_b64.($str, character $j)] + for $i in (1 to #$str by 4): + $indices = [: for $j in ($i to ($i + 3)): add $reverse_b64.($str, character $j)] $chars, add (chr (($indices.1 << 2) + (($indices.2 & 48) >> 4))) if (($str, character ($i + 2)) == "="): stop $chars, add (chr ((($indices.2 & 15) << 4) + (($indices.3 & 60) >> 2))) |
