diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-12 10:39:17 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-12 10:39:17 -0400 |
| commit | 86b05c92e6bf1277783ff31b5f8da4cb57600feb (patch) | |
| tree | bd2233c65f2dd1647f0b23797fefcfce9073f942 | |
| parent | 35f56ebecb316bbbc07ee5b2cd60730c3b6976df (diff) | |
Multi-character identifiers
| -rwxr-xr-x | c.bqn | 17 | ||||
| -rw-r--r-- | test/cases.bqn | 2 |
2 files changed, 11 insertions, 8 deletions
@@ -7,8 +7,7 @@ charSet←∾charGroups←⟨ "⍝" ⍝ Remark •d ⍝ +⟜(↕10)⌾•UCS'0' ⍝ Digit "¯.π∞" ⍝ Numeric - ' '(⊢∾+)⌾•UCS•a ⍝ Alphabetic - "_" ⍝ Underscore + "_"∾' '(⊢∾+)⌾•UCS•a ⍝ Alphabetic chF←"+-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔" ⍝ Function "˜˘¨⌜⁼´`" ⍝ Modifier "∘○⊸⟜⌾⎉⚇⍟" ⍝ Composition @@ -20,7 +19,7 @@ charSet←∾charGroups←⟨ "‿" ⍝ Ligature "'""" ⍝ Quote ⟩ -bR‿bD‿bN‿bA‿bU‿bF‿bM‿bC‿bP‿bW‿bS‿bG‿bB‿bL‿bQ←↕∘≠⌾∾charGroups +bR‿bD‿bN‿bA‿bF‿bM‿bC‿bP‿bW‿bS‿bG‿bB‿bL‿bQ←↕∘≠⌾∾charGroups Hex←16⊥(•d∾"ABCDEF")⊸⊐ MakeTab←{{(≠chF)↑⊑¨(chF⊐𝕨)⊔𝕩}○∾⟜(⥊¨∘⥊¨)´⍉(2(÷˜∾⊣)≢)⊸⥊𝕩} @@ -35,10 +34,14 @@ tab2←MakeTab⟨ ⟩ Parse←{ - ⟨⟩Parse𝕩;args←charSet⊐𝕨⋄x←charSet⊐𝕩 - x(/˜)↩¬(x∊bW)∨<○(⌈`↕∘≠⊸×)´((⊑bS)∾bR)=⌜x + ⟨⟩Parse𝕩;args←charSet⊸⊐¨𝕨⋄x←charSet⊐𝕩 + x(/˜)↩¬<○(⌈`↕∘≠⊸×)´((⊑bS)∾bR)=⌜x + w←(<´≠↕0∾⊢)wc←x∊bA + id←∪ids←(1-˜wc×+`w)⊔x + vi←≠charSet⋄vars←vi+↕≠id⋄args↩vi+id⊐args + x↩(w∨¬wc∨x∊bW)/(vi+id⊐ids)⌾(w⊸/)x x(/˜)↩¬(1⌾⊑1⌽1⌾⊑)⊸∧x∊bS - a←x∊(2↑bG)⋄at←1⌽a⋄vars←at/x⋄x(/˜)↩¬a⋄a(/˜)↩¬at + a←x∊(2↑bG)⋄at←1⌽a⋄x(/˜)↩¬a⋄a(/˜)↩¬at l←≠x⋄sep←x∊bS⋄x↩(bF⊑˜chF⊐<'⊣')¨⌾(sep⊸/)x o←x=0⊑bB⋄c←x=1⊑bB⋄v←a-˜x∊bD∾args∾vars⋄f←¬o∨c∨v∨sep na←(2×sep)+f×1+l↑0∾c∨v @@ -88,6 +91,6 @@ Gen←{ Compile←{ body←GenFn∘Parse 𝕩 - rcp←"x" GenFn∘Parse "1÷x" + rcp←⟨"x"⟩ GenFn∘Parse "1÷x" Gen ⟨⟨0‿1,1‿1⟩/¨¨f64 ⋄ ⥊<"fn" ⋄ ⟨body,rcp⟩⟩ } diff --git a/test/cases.bqn b/test/cases.bqn index 50a8e6f7..cd7774c8 100644 --- a/test/cases.bqn +++ b/test/cases.bqn @@ -3,7 +3,7 @@ -1 % -2⌊1 1 % (÷2)+(÷3)+(÷6) 4 % ⊢4⊣5 -0 % s←√5,⌊9×|5-s×s +0 % sq←√5,⌊9×|5-sq×sq -0.5 % ((-3)+√(3×3)-4×2×1)÷2×2 -0.5 % a←2,b←3,c←1⋄((-b)+√(b×b)-4×a×c)÷2×a -0.5 % b←1+a←1+c←1⋄((-b)+√(b×b)-4×a×c)÷2×a |
