blob: e8e41552a67e0f34e8046061a91a6a28b3b8126a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
if exists('b:current_syntax')
finish
endif
syn match bqnerr "[^ \t\r\n]"
syn match bqnblk "[{}]"
syn match bqnlst "[⟨⟩\[\]‿]"
syn match bqnpar "[()]"
syn match bqnhed "[:;?]"
syn match bqnsep "[⋄,]"
syn match bqnarw "[←⇐↩→]"
syn match bqnchr "'.'"
syn match bqn1md "[˙˜˘¨⌜⁼´˝`]"
syn match bqn2md "[∘○⊸⟜⌾⊘◶⎉⚇⍟⎊]"
syn match bqnfun "[𝔽𝔾𝕎𝕏𝕊+\-×÷⋆√⌊⌈|¬∧∨<>≠=≤≥≡≢⊣⊢⥊∾≍⋈↑↓↕«»⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔!⍕⍎]"
syn match bqnsub "[𝕗𝕘𝕨𝕩𝕤]"
syn match bqnnot "·"
syn match bqnnul "@"
syn match bqnnum "\v\c%(¯_*)?%((\d[\d_]*(\.\d[\d_]*)?|π_*)%(e_*(¯_*)?\d[\d_]*)?|∞_*)(i_*%(¯_*)?%((\d[\d_]*(\.\d[\d_]*)?|π_*)%(e_*(¯_*)?\d[\d_]*)?|∞_*))?"
syn match bqnsid "\(•\|•\?[a-z][A-Z_a-z0-9π∞¯]*\|𝕣\)"
syn match bqnfid "•\?[A-Z][A-Z_a-z0-9π∞¯]*"
syn match bqn1id "\(•\?_[A-Za-z][A-Z_a-z0-9π∞¯]*\|_𝕣\)"
syn match bqn2id "\(•\?_[A-Za-z][A-Z_a-z0-9π∞¯]*_\|_𝕣_\)"
syn match bqndot "\."
syn match bqncom "#.*$"
syn match bqnquo /""/ contained
syn region bqnstr matchgroup=bqnstr start=/"/ end=/"/ contains=bqnquo
syn sync fromstart
hi link bqnerr error
hi link bqncom comment
hi link bqnblk special
hi link bqnhed delimiter
hi link bqnpar delimiter
hi link bqnlst preproc
hi link bqnsep preproc
hi link bqnarw normal
hi link bqnchr string
hi link bqnnul string
hi link bqnstr string
hi link bqnquo specialchar
hi link bqnnum number
hi link bqnnot constant
hi link bqndot normal
hi link bqnsub normal
hi link bqnsid normal
hi link bqnfun type
hi link bqnfid type
hi link bqn1md macro
hi link bqn1id macro
hi link bqn2md operator
hi link bqn2id operator
let b:current_syntax='bqn'
|