aboutsummaryrefslogtreecommitdiff
path: root/src/e.bqn
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-05 20:24:28 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-11-05 20:25:38 -0500
commit723f0863d62a2ee9fcf6da65aef3b0b4d679eedd (patch)
tree3e204023cb2d5b2e9169f8a07bd053e7faf75a27 /src/e.bqn
parent466a328da7c4f52b2325dd28800d819f53f9ca5b (diff)
Emit HTML escapes in the explainer
Diffstat (limited to 'src/e.bqn')
-rw-r--r--src/e.bqn12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/e.bqn b/src/e.bqn
index 62eed453..3126e6ae 100644
--- a/src/e.bqn
+++ b/src/e.bqn
@@ -34,6 +34,8 @@ hlcl ∾↩ ⟨
GetHlcl←hlch{(+`≠¨𝕗)⍋(∾𝕗)⊸⊐}
hlTag ← {"<tspan class='"∾𝕩∾"'>"}¨ hlcl
+escchars ← """&<>" ⋄ escapes ← ("&"∾∾⟜";")¨"quot"‿"amp"‿"lt"‿"gt"
+
Explain ← {
b‿const‿blk‿i‿tok ← 𝕨
ba‿bc‿bo‿bp ← '0'-˜⟨ # For each instruction, number of:
@@ -68,9 +70,13 @@ Explain ← {
t ← c∾o
ilf ← /𝕩=@+10
𝕩 ↩ ((ilf∊s)⊏" ⋄")⌾(ilf⊸⊏)𝕩
- src ← ((↕≠𝕩)∾(≠¨t)/e∾s-1) ⍋⊸⊏ 𝕩∾∾t
- tt← <˘⍉> ⟨o, e(𝕩⊏˜⊢+↕∘¬)¨s, c⟩
- ti← s⊐k/mi
+ u←/¬em←escchars≠⊸>ei←escchars⊐𝕩 ⋄ t∾˜↩escapes⊏˜em/ei
+ ord← ⍋u∾(≠¨t)/(/em)∾e∾s-1
+ src← ord⊏(u⊏𝕩)∾∾t
+ el ← ei⊏(≠¨escapes)∾1
+ xe ← (ord⊏(+´el)>↕∘≠)⊸/src
+ tt ← <˘⍉> ⟨o, xe⊔˜el/1-˜s(⊣×>)○(+`(≠𝕩)↑/⁼)1+e, c⟩
+ ti ← s⊐k/mi
⟨src, ti⊏tt, ti⊏(s+e)÷2⟩
} 𝕩