vim help file BNF
/icons/注意.icon 消すのも勿体無かったのでメモまで。不完全です
code-block のところが先頭スペース(タブ)でない場合に code-block を抜けるようにできていない
code:text
<vimhelp> = line*
<line> = section-head / code-block / heading / divider / text
EOL = #'(\r\n|$)'
(* ---- TEXT BLOCK ---- *)
text = tokens (<EOL>|<beginning-of-code-block>)
<token> = tag / ref / code / constant / url / char
<tokens> = token*
tag = <'*'> #'^*\r\n+' <'*'>
ref = <'|'> #'^|\r\n+' <'|'>
code = <''> #'[^\r\n]+' <'`'>
constant = <'{'> #'^{}\r\n+' <'}'>
url = #'https?://^ \r\n+'
<char> = #'(?! >(\r\n|$)).'
(* ---- SECTION HEAD ---- *)
<section-title> = #'A-Z -+'
section-head = section-title tag <EOL>
(* ---- CODE BLOCK ---- *)
beginning-of-code-block = #'(?= >(\r\n|$)).'
code-block-open = ' '? '>' <EOL>
code-block-close = <EOL> '<' <EOL>
<code-block-char> = #'((?!<(\r\n|$)).|\r|\n)'
code-block = <code-block-open> code-block-char* <code-block-close>
(* ---- HEADING ---- *)
<heading-char> = #'(?!~(\r\n|$)).'
heading = heading-char+ <'~'> <EOL>
(* ---- DIVIDER ---- *)
divider = #'(={3,}|-{3,})' <EOL>
#vim #clojure #instaparse