aboutsummaryrefslogtreecommitdiff
path: root/grammars/builtins.bp
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2021-05-11 12:38:58 -0700
committerBruce Hill <bruce@bruce-hill.com>2021-05-11 12:38:58 -0700
commita93220972f8130732c8cd0267c0b14db77ac19ea (patch)
treed1141bfdcded68c8b51d9ed6a735aea5134ab4c8 /grammars/builtins.bp
parent3359a804c8fe02ea4e9bc1abb7430109affdd535 (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.bp12
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