]> git.wh0rd.org - tt-rss.git/blobdiff - lib/dojo/regexp.js
build custom layer of Dojo to speed up loading of tt-rss (refs #293)
[tt-rss.git] / lib / dojo / regexp.js
index 2c63514f31b8e641a059e8b4244d1e2daf45c57a..1da68f4525ff59c57e020fe0308db76d4047c730 100644 (file)
@@ -5,28 +5,71 @@
 */
 
 
-if(!dojo._hasResource["dojo.regexp"]){
-dojo._hasResource["dojo.regexp"]=true;
+if(!dojo._hasResource["dojo.regexp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo.regexp"] = true;
 dojo.provide("dojo.regexp");
-dojo.regexp.escapeString=function(_1,_2){
-return _1.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){
-if(_2&&_2.indexOf(ch)!=-1){
-return ch;
-}
-return "\\"+ch;
-});
+
+/*=====
+dojo.regexp = {
+       // summary: Regular expressions and Builder resources
 };
-dojo.regexp.buildGroupRE=function(_3,re,_4){
-if(!(_3 instanceof Array)){
-return re(_3);
+=====*/
+
+dojo.regexp.escapeString = function(/*String*/str, /*String?*/except){
+       //      summary:
+       //              Adds escape sequences for special characters in regular expressions
+       // except:
+       //              a String with special characters to be left unescaped
+
+       return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(ch){
+               if(except && except.indexOf(ch) != -1){
+                       return ch;
+               }
+               return "\\" + ch;
+       }); // String
 }
-var b=[];
-for(var i=0;i<_3.length;i++){
-b.push(re(_3[i]));
+
+dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boolean?*/nonCapture){
+       //      summary:
+       //              Builds a regular expression that groups subexpressions
+       //      description:
+       //              A utility function used by some of the RE generators. The
+       //              subexpressions are constructed by the function, re, in the second
+       //              parameter.  re builds one subexpression for each elem in the array
+       //              a, in the first parameter. Returns a string for a regular
+       //              expression that groups all the subexpressions.
+       // arr:
+       //              A single value or an array of values.
+       // re:
+       //              A function. Takes one parameter and converts it to a regular
+       //              expression. 
+       // nonCapture:
+       //              If true, uses non-capturing match, otherwise matches are retained
+       //              by regular expression. Defaults to false
+
+       // case 1: a is a single value.
+       if(!(arr instanceof Array)){
+               return re(arr); // String
+       }
+
+       // case 2: a is an array
+       var b = [];
+       for(var i = 0; i < arr.length; i++){
+               // convert each elem to a RE
+               b.push(re(arr[i]));
+       }
+
+        // join the REs as alternatives in a RE group.
+       return dojo.regexp.group(b.join("|"), nonCapture); // String
 }
-return dojo.regexp.group(b.join("|"),_4);
-};
-dojo.regexp.group=function(_5,_6){
-return "("+(_6?"?:":"")+_5+")";
-};
+
+dojo.regexp.group = function(/*String*/expression, /*Boolean?*/nonCapture){
+       // summary:
+       //              adds group match to expression
+       // nonCapture:
+       //              If true, uses non-capturing match, otherwise matches are retained
+       //              by regular expression. 
+       return "(" + (nonCapture ? "?:":"") + expression + ")"; // String
+}
+
 }