This repository has been archived by the owner on Feb 3, 2021. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for enumerated character list matching.
- Loading branch information
Showing
5 changed files
with
155 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
## Enumerated character lists | ||
<[c]> abcdef y character class | ||
# todo :pugs<feature> | ||
<[ z ]> abc def n character class ignores ws | ||
# todo :pugs<feature> | ||
<[dcb]>**{3} abcdef y repeated character class | ||
^<[a]> abcdef y anchored character class | ||
<-[e]> abcdef y negated character class | ||
^<[a]>? abcdef y anchored optional character class | ||
<-[e]>? abcdef y negated optional character class | ||
<-[dcb]>**{3} abcdef n repeated negated character class | ||
^<-[e]> abcdef y anchored negated character class | ||
^<-[a]> abcdef n anchored negated character class | ||
<[b..d]> abcdef y character range | ||
# todo :pugs<feature> | ||
<[b .. d]> c y character range ignores ws | ||
<[b..d]> abxxef y character range | ||
<[b..d]> axcxef y character range | ||
<[b..d]> axxdef y character range | ||
<[b..d]> axxxef n character range | ||
<-[b..d]> abcdef y negated character range | ||
# todo :pugs<feature> | ||
<- [b..d]> abcdef y negated allows ws | ||
<-[b..d]> bbccdd n negated character range | ||
# todo :pge<reversed character range> | ||
<-[d..b]> bbccdd /parse error/ illegal character range | ||
<[-]> ab-def /parse error/ unescaped hyphen | ||
<[\-]> ab-def y escaped hyphen | ||
<[\-]> abcdef n escaped hyphen | ||
<-[\-]> ---x-- y negated escaped hyphen | ||
<-[\-]> ------ n negated escaped hyphen | ||
<[\-+]> ab-def y escaped hyphen in range | ||
<[\-+]> ab+def y escaped hyphen in range | ||
<[\-+]> abcdef n escaped hyphen in range | ||
<[+\-]> ab-def y escaped hyphen in range | ||
<[+\-]> ab+def y escaped hyphen in range | ||
<[+\-]> abcdef n escaped hyphen in range | ||
<-[\-+]> ---x-- y negated escaped hyphen in range | ||
<-[\-+]> ------ n negated escaped hyphen in range | ||
<-[+\-]> ---x-- y negated escaped hyphen in range | ||
<-[+\-]> ------ n negated escaped hyphen in range | ||
<["\\]> \\ y escaped backslash | ||
<[\]]> ] y escaped close bracket | ||
<[\]> \\]] /parse error/ unescaped backslash (or no closing brace) | ||
^\><[<]> >< y lt character class | ||
^<[>]>\< >< y gt character class | ||
# todo :pugs<feature> | ||
^<[><]>**{2} >< y gt, lt character class | ||
# todo :pugs<feature> | ||
^<[<>]>**{2} >< y lt, gt character class | ||
^<-[><]> >< n not gt, lt character class | ||
^<-[<>]> >< n not lt, gt character class | ||
'... --- ...' ... --- ... y literal match (\') | ||
'... --- ...' ...---... n literal match (\') | ||
# todo :pugs<feature> | ||
'ab\'>cd' ab'>cd y literal match with quote | ||
'ab\\yz' ab\x5cyz y literal match with backslash | ||
'ab"cd' ab"cd y literal match with quote | ||
# todo :pugs<feature> | ||
'ab\\yz' ab\x5cyz y literal match with backslash | ||
# todo :pugs<feature> :pge<feature> | ||
"... --- ..." ... --- ... y literal match (\") | ||
# todo :pugs<feature> :pge<feature> | ||
"... --- ..." ...---... n literal match (\") | ||
# todo :pugs<feature> :pge<feature> | ||
"ab<\">cd" ab<">cd y literal match with quote | ||
# todo :pugs<feature> :pge<feature> | ||
"ab<'>cd" ab<'>cd y literal match with quote | ||
# todo :pugs<feature> :pge<feature> | ||
"ab\\cd" ab\x5ccd y literal match with backslash | ||
# todo :pugs<feature> :pge<feature> | ||
(ab)x"$0" abxab y literal match with interpolation | ||
# todo :pugs<feature> :pge<feature> | ||
(ab)"x$0" abxab y literal match with interpolation | ||
'?' ab<? y literal match with question mark | ||
'<' ab<? y literal match with lt | ||
'<?' ab<? y literal match with lt and question mark | ||
'<?' ab<x? n non-matching literal match | ||
<[A..Z0..9]> abcdef n two enumerated ranges | ||
<[A..Z0..9]> abcDef y two enumerated ranges | ||
|
||
## vim: noexpandtab tabstop=4 shiftwidth=4 |