diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-08-17 10:20:36 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-08-17 10:20:36 -0400 |
| commit | 3cccac26dc804704446cd88676dc583f997252fd (patch) | |
| tree | 97ad0827866e7290740ac0e3ab0a245174421c02 /src/pp.bqn | |
| parent | f35eb238324d446c383a36828d7154001a2badd5 (diff) | |
Index-based is better than mask-based tracing (e.g. for strings and comments)
Diffstat (limited to 'src/pp.bqn')
| -rw-r--r-- | src/pp.bqn | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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)⊔𝕩 |
