A4-Tacks | 9f827ec | 2025-03-05 20:10:29 +0100 | [diff] [blame] | 1 | " Vim compiler file |
| 2 | " Language: abnf |
| 3 | " Maintainer: A4-Tacks <wdsjxhno1001@163.com> |
| 4 | " Last Change: 2025 Mar 05 |
| 5 | " Upstream: https://github.com/A4-Tacks/abnf.vim |
| 6 | |
| 7 | " Implementing RFC-5234, RFC-7405 |
| 8 | |
| 9 | if exists('b:current_syntax') |
| 10 | finish |
| 11 | endif |
| 12 | |
| 13 | syn case ignore |
| 14 | |
| 15 | syn match abnfError /[<>"]/ |
| 16 | syn match abnfComment /;.*/ |
| 17 | syn match abnfOption /[[/\]]/ |
| 18 | syn region abnfString start=/\(%[si]\)\="/ end=/"/ oneline |
| 19 | syn region abnfProse start=/</ end=/>/ oneline |
| 20 | syn match abnfNumVal /\v\%b[01]+%(%(\.[01]+)+|-[01]+)=>/ |
| 21 | syn match abnfNumVal /\v\%d\d+%(%(\.\d+)+|-\d+)=>/ |
| 22 | syn match abnfNumVal /\v\%x[0-9a-f]+%(%(\.[0-9a-f]+)+|-[0-9a-f]+)=>/ |
| 23 | syn match abnfRepeat /\v%(%(<\d+)=\*\d*|<\d+ =)\ze[^ \t\r\n0-9*/)\]]/ |
| 24 | |
| 25 | hi def link abnfError Error |
| 26 | hi def link abnfComment Comment |
| 27 | hi def link abnfOption PreProc |
| 28 | hi def link abnfString String |
| 29 | hi def link abnfProse String |
| 30 | hi def link abnfNumVal Number |
| 31 | hi def link abnfRepeat Repeat |
| 32 | |
| 33 | " vim:noet:ts=8:sts=8:nowrap |