named group generation for Reflex hxnodejs
This commit is contained in:
@@ -13,7 +13,7 @@ typedef RMatch = {
|
|||||||
right:String,
|
right:String,
|
||||||
#if hxnodejs
|
#if hxnodejs
|
||||||
groups:Array<String>,
|
groups:Array<String>,
|
||||||
namedGroups:DynamicAccess<String,String>,
|
namedGroups:DynamicAccess<String>,
|
||||||
#end
|
#end
|
||||||
group:Int->String
|
group:Int->String
|
||||||
};
|
};
|
||||||
|
@@ -3,10 +3,17 @@
|
|||||||
(var end "\$")
|
(var end "\$")
|
||||||
|
|
||||||
(function :String _group [:Array<Dynamic> exprs]
|
(function :String _group [:Array<Dynamic> exprs]
|
||||||
(+ "(" (apply + exprs) ")"))
|
(+ "(" (apply + (assert exprs)) ")"))
|
||||||
|
|
||||||
(var group (Reflect.makeVarArgs _group))
|
(var group (Reflect.makeVarArgs _group))
|
||||||
|
|
||||||
|
(#when hxnodejs
|
||||||
|
(function :String _namedGroup [:Array<Dynamic> exprs]
|
||||||
|
(let [groupName (assert (exprs.shift))]
|
||||||
|
(_group (concat ["?<${groupName}>"] exprs))))
|
||||||
|
|
||||||
|
(var namedGroup (Reflect.makeVarArgs _namedGroup)))
|
||||||
|
|
||||||
(function :String escape [:String str]
|
(function :String escape [:String str]
|
||||||
(group (EReg.escape str)))
|
(group (EReg.escape str)))
|
||||||
|
|
||||||
@@ -31,7 +38,7 @@
|
|||||||
// TODO could memoize compiled regexes
|
// TODO could memoize compiled regexes
|
||||||
(function :Null<RMatch> match [:String regex :String textToSearch &opt :String flags]
|
(function :Null<RMatch> match [:String regex :String textToSearch &opt :String flags]
|
||||||
(#if hxnodejs
|
(#if hxnodejs
|
||||||
(ifLet [:RegExpMatch match (.exec (new RegExp regex /* TODO use or for this once it's fixed */ (if flags flags "")) textToSearch)]
|
(ifLet [match (the RegExpMatch (.exec (new RegExp regex /* TODO use or for this once it's fixed */ (if flags flags "")) textToSearch))]
|
||||||
(object
|
(object
|
||||||
left
|
left
|
||||||
(textToSearch.substr 0 match.index)
|
(textToSearch.substr 0 match.index)
|
||||||
|
Reference in New Issue
Block a user