Add tagged captures for a better (more correct) form of look behind.

This commit is contained in:
Calvin Rose
2019-01-16 22:38:11 -05:00
parent 612a245961
commit 2c1b506213
3 changed files with 234 additions and 154 deletions
+5 -3
View File
@@ -294,7 +294,7 @@
~{:pad (any "=")
:open (* "[" (<- :pad :n) "[")
:close (* "]" (cmt (* (-> :n) (<- :pad)) ,=) "]")
:main (cmt (* :open (any (if-not :close 1)) :close -1) ,=)})
:main (* :open (any (if-not :close 1)) :close -1)})
(check-match wrapped-string "[[]]" true)
(check-match wrapped-string "[==[a]==]" true)
@@ -308,8 +308,10 @@
(check-match wrapped-string "[===[]==]===]" true)
(def janet-longstring
~{:delim (capture (some "`"))
:main (cmt (* :delim (any (if-not (* (not (> -1 "`")) :delim) 1)) (not (> -1 "`")) :delim -1) ,=)})
~{:delim (some "`")
:open (capture :delim :n)
:close (cmt (* (not (> -1 "`")) (-> :n) (<- :delim)) ,=)
:main (* :open (any (if-not :close 1)) :close -1)})
(check-match janet-longstring "`john" false)
(check-match janet-longstring "abc" false)