diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/c.bqn | 4 | ||||
| -rw-r--r-- | src/e.bqn | 4 | ||||
| -rw-r--r-- | src/eu.bqn | 4 | ||||
| -rw-r--r-- | src/pp.bqn | 4 |
4 files changed, 8 insertions, 8 deletions
@@ -46,8 +46,8 @@ Tokenize←{System‿vars←𝕨 c←𝕩='#'⋄s←/0‿0⊸«⊸∧sm←𝕩='''⋄d←/dm←𝕩='"' g←⍋q←∾⟨ s⋄¯1↓d⋄/c⟩ ⋄q↩g⊏q # Open indices e← g⊏∾⟨2+s⋄ 1↓d⋄-⟜»∘⊏⟜(0∾+`c)⊸//(𝕩∊lf)∾1⟩ # Matching close indices - Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟(0=¯1⊑⊢) # Mark reachable openings - St←(≠𝕩)↑·/⁼((≠↑∾⟜≠Se 1∾0¨)q⍋e)⊸/ # All indices → reached mask + Se←≠(>/⊢)∾⟜≠{(⊏˜𝕨)𝕊⍟(≠○(¯1⊸⊑))𝕩∾𝕩⊏𝕨}⟨0⟩˙ # Find reachable openings + St←(≠𝕩)↑·/⁼(Se q⍋e)⊸⊏ # All indices → reached mask a←St q⋄b←St e⋄f←1≠`ab←a∨b # Open/close masks; filter {!⟨⊑/𝕩,"Unclosed quote"⟩}⍟(∨´)(sm∨dm)∧b<f @@ -47,8 +47,8 @@ Explain ← { ⟩ m ← { # Mask of instruction starts n ← (↕≠b)+1+ba(⊣⊏˜≠⊸>×⊢)b - Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟(0=¯1⊑⊢) - (≠↑∾⟜≠Se 1∾0¨) n + Se←≠(>/⊢)∾⟜≠{(⊏˜𝕨)𝕊⍟(≠○(¯1⊸⊑))𝕩∾𝕩⊏𝕨}⟨0⟩˙ + (≠↑·/⁼Se) n } mb‿mi ← 0‿¯1 ↓¨ m⊸/¨ b‿i la←¯1=na←mb⊏bc @@ -14,8 +14,8 @@ Explain ← { ⟩ m ← { # Mask of instruction starts n ← (↕≠b)+1+ba(⊣⊏˜≠⊸>×⊢)b - Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟(0=¯1⊑⊢) - (≠↑∾⟜≠Se 1∾0¨) n + Se←≠(>/⊢)∾⟜≠{(⊏˜𝕨)𝕊⍟(≠○(¯1⊸⊑))𝕩∾𝕩⊏𝕨}⟨0⟩˙ + (≠↑·/⁼Se) n } mb‿mi ← 0‿¯1 ↓¨ m⊸/¨ b‿i la←¯1=na←mb⊏bc @@ -26,8 +26,8 @@ Tokenize←{ s‿d←/¨2↑sm‿dm‿c‿n←𝕩⊸=¨"'""#"∾lf g←⍋q←∾⟨ s⋄¯1↓d⋄/c⟩ ⋄q↩g⊏q # Open indices e← g⊏∾⟨2+s⋄ 1↓d⋄-⟜»∘⊏⟜(0∾+`c)⊸//n∾1⟩ # Matching close indices - Se←{(⊏˜𝕨)Se 1¨⌾((𝕩/𝕨)⊸⊏)𝕩}⍟(0=¯1⊑⊢) # Mark reachable openings - ab←(≠𝕩)↑/⁼⥊((≠↑∾⟜≠Se 1∾0¨)q⍋e)/⍉q≍e # Open/close masks + Se←≠(>/⊢)∾⟜≠{(⊏˜𝕨)𝕊⍟(≠○(¯1⊸⊑))𝕩∾𝕩⊏𝕨}⟨0⟩˙ # Find reachable openings + ab←(≠𝕩)↑/⁼⥊(Se q⍋e)⊏⍉q≍e # Open/close masks k←(n∧ab)<»(𝕩='•')∨(∧⟜«𝕩∊wc)∨≠`ab # Token continuation mask (¯1+`¬k)⊔𝕩 |
