diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2021-05-11 12:38:58 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2021-05-11 12:38:58 -0700 |
| commit | a93220972f8130732c8cd0267c0b14db77ac19ea (patch) | |
| tree | d1141bfdcded68c8b51d9ed6a735aea5134ab4c8 /grammars/builtins.bp | |
| parent | 3359a804c8fe02ea4e9bc1abb7430109affdd535 (diff) | |
Overhaul of |-word boundaries (| is deprecated), performance
improvements for repeating matches, tweaks to the logic of word vs. id
Diffstat (limited to 'grammars/builtins.bp')
| -rw-r--r-- | grammars/builtins.bp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/grammars/builtins.bp b/grammars/builtins.bp index 354ac50..526498e 100644 --- a/grammars/builtins.bp +++ b/grammars/builtins.bp @@ -16,12 +16,18 @@ brackets: `[ ..%(\n/brackets/string) `] braces: `{ ..%(\n/braces/string) `} parens: `( ..%(\n/parens/string) `) string: `" ..%(`\.) `" / `' ..%(`\.) `' -id: !<`a-z,A-Z,_,0-9 (`a-z,A-Z,_ *`a-z,A-Z,_,0-9)!=keyword | +left-id-boundary: ^ / <(\x00-x7f!=id-char) / <((\xc0-xdf \x80-xbf)!=id-char) + / <((\xe0-xef 2\x80-xbf)!=id-char) / <((\xf0-xf7 3\x80-xbf)!=id-char) +right-id-boundary: !id-char +id: left-id-boundary !`0-9 (+id-char)!=keyword id-char: `a-z,A-Z,_,0-9 -|: !<`a-z,A-Z,_,0-9 / !`a-z,A-Z,_,0-9 var: id keyword: !"" # No keywords defined by default -word: |+`a-z,A-Z !`0-9,_ +left-word-boundary: ^ / <(\x00-x7f!=word-char) / <((\xc0-xdf \x80-xbf)!=word-char) + / <((\xe0-xef 2\x80-xbf)!=word-char) / <((\xf0-xf7 3\x80-xbf)!=word-char) +right-word-boundary: !word-char +word-char: `a-z,A-Z,_,0-9,-,' +word: left-word-boundary +word-char HEX: `0-9,A-F Hex: `0-9,a-f,A-F hex: `0-9,a-f |
