diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2020-09-28 17:42:38 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2020-09-28 17:42:38 -0700 |
| commit | 544a88e9d4faa3f7e34316daaa01d2fa14d1d9f6 (patch) | |
| tree | 77c3b3a35d04c7ab31aa5b7461d387ecf2a70b33 /grammars | |
| parent | 54b14a35573aed89670228e5cbfbd820da24aeaf (diff) | |
Added +/*/? postfix operators
Diffstat (limited to 'grammars')
| -rw-r--r-- | grammars/bpeg.bpeg | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/grammars/bpeg.bpeg b/grammars/bpeg.bpeg index bf2386e..ce10bc1 100644 --- a/grammars/bpeg.bpeg +++ b/grammars/bpeg.bpeg @@ -9,17 +9,21 @@ Def: @name=id _ `: __ ( # This is used for command line arguments: String-pattern: 0+(`\ (escape-sequence / pat [`;]) / .) -pat: suffixed-pat / simple-pat +pat: simple-pat !(__("=="/`*/`+/`?)) / suffixed-pat simple-pat: Upto-and / Dot / String / Char-range / Char / Escape-range / Escape / No / Nodent / Repeat / Optional / After / Before / Capture / Replace / Ref / parens -suffixed-pat: Eq-pat / simple-pat [ - @!={`* => "'*' is not a BPEG operator. Use 0+<pat> instead of <pat>*"} - / @!={`+ => "'+' is not a BPEG operator. Use 1+<pat> instead of <pat>+"} - / @!={`? => "'?' is not a BPEG operator. Use [<pat>] instead of <pat>?"} -] +suffixed-pat: ( + Eq-pat + / Star-pat + / Plus-pat + / Question-pat +) -Eq-pat: @first=simple-pat "==" @second=pat +Eq-pat: @first=pat__"=="__@second=pat +Star-pat: pat __ `* @min={=>"0"} @max="" [__`%__@sep=pat] +Plus-pat: pat __ `+ @min={=>"1"} @max="" [__`%__@sep=pat] +Question-pat: pat __ `? Dot: `. !`. String: ( |
