static PegGrammarParser()
        {
            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('A','Z'),
                   };
               char[] oneOfChars = new char[]    {',',')','(','{','}'
                                                  ,'_'};
               optimizedCharset0= new OptimizedCharset(ranges,oneOfChars, true);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","readonly","volatile",
                  "unsafe" };
               optimizedLiterals1= new OptimizedLiterals(literals);
            }
        }
示例#2
0
        static EMail()
        {
            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('0','9'),
                   };
               char[] oneOfChars = new char[]    {'-','.','!','#','$'
                                                  ,'%','&','\'','*','+'
                                                  ,'/','=','?','^','_'
                                                  ,'`','{','|','}','~'
                                                  ,'@',',','[',']',' '
                                                  };
               optimizedCharset0= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('0','9'),
                   new OptimizedCharset.Range('+','/'),
                   };
               char[] oneOfChars = new char[]    {'.','!','#','$','%'
                                                  ,'&','\'','*','=','?'
                                                  ,'^','_','`','{','|'
                                                  ,'}','~','@',',','"'
                                                  ,'\\','[',']'};
               optimizedCharset1= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0001','\u0008'),
                   new OptimizedCharset.Range('\u000e','\u001f'),
                   new OptimizedCharset.Range('\u0021','\u0027'),
                   new OptimizedCharset.Range('\u002a','\u005b'),
                   new OptimizedCharset.Range('\u005d','\u007e'),
                   };
               char[] oneOfChars = new char[]    {'\u000b','\u000c','\u007f'};
               optimizedCharset2= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('0','9'),
                   };
               char[] oneOfChars = new char[]    {'-','!','#','$','%'
                                                  ,'&','\'','*','+','/'
                                                  ,'=','?','^','_','`'
                                                  ,'{','|','}','~'};
               optimizedCharset3= new OptimizedCharset(ranges,oneOfChars);
            }
        }
示例#3
0
        static EMail()
        {
            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('A', 'Z'),
                  new OptimizedCharset.Range('a', 'z'),
                  new OptimizedCharset.Range('0', '9'), };
                char[] oneOfChars = new char[]    { '-', '.', '!', '#', '$'
                                                    , '%', '&', '\'', '*', '+'
                                                    , '/', '=', '?', '^', '_'
                                                    , '`', '{', '|', '}', '~'
                                                    , '@', ',', '[', ']', ' ' };
                optimizedCharset0 = new OptimizedCharset(ranges, oneOfChars);
            }

            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('A', 'Z'),
                  new OptimizedCharset.Range('a', 'z'),
                  new OptimizedCharset.Range('0', '9'),
                  new OptimizedCharset.Range('+', '/'), };
                char[] oneOfChars = new char[]    { '.', '!', '#', '$', '%'
                                                    , '&', '\'', '*', '=', '?'
                                                    , '^', '_', '`', '{', '|'
                                                    , '}', '~', '@', ',', '"'
                                                    , '\\', '[', ']' };
                optimizedCharset1 = new OptimizedCharset(ranges, oneOfChars);
            }

            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('\u0001', '\u0008'),
                  new OptimizedCharset.Range('\u000e', '\u001f'),
                  new OptimizedCharset.Range('\u0021', '\u0027'),
                  new OptimizedCharset.Range('\u002a', '\u005b'),
                  new OptimizedCharset.Range('\u005d', '\u007e'), };
                char[] oneOfChars = new char[]    { '\u000b', '\u000c', '\u007f' };
                optimizedCharset2 = new OptimizedCharset(ranges, oneOfChars);
            }

            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('A', 'Z'),
                  new OptimizedCharset.Range('a', 'z'),
                  new OptimizedCharset.Range('0', '9'), };
                char[] oneOfChars = new char[]    { '-', '!', '#', '$', '%'
                                                    , '&', '\'', '*', '+', '/'
                                                    , '=', '?', '^', '_', '`'
                                                    , '{', '|', '}', '~' };
                optimizedCharset3 = new OptimizedCharset(ranges, oneOfChars);
            }
        }
示例#4
0
文件: nLess.cs 项目: gjunge/nLess
        static nLess()
        {
            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('0','9'),
                   };
               char[] oneOfChars = new char[]    {'-','_','%','$','/'
                                                  ,'.','&','=',':',';'
                                                  ,'#','+','?'};
               optimizedCharset0= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('0','9'),
                   };
               char[] oneOfChars = new char[]    {'-','_','%','*','/'
                                                  ,'.','&','=',':',','
                                                  ,'#','+','?',' ','\\'
                                                  ,'[',']','(',')'};
               optimizedCharset1= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('0','9'),
                   };
               char[] oneOfChars = new char[]    {'-','_','%','$','/'
                                                  ,'.','&','=',':',';'
                                                  ,'#','+','?'};
               optimizedCharset2= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               string[] literals=
               { "px","em","pc","%","ex","s","pt","cm",
                  "mm" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }
        }
示例#5
0
        static ExcelFormula()
        {
            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('A', 'Z'),
                  new OptimizedCharset.Range('a', 'z'),
                  new OptimizedCharset.Range('0', '9'),
                  new OptimizedCharset.Range(',', '.'), };
                char[] oneOfChars = new char[]    { '!', '"', '#', '$', '%'
                                                    , '&', '(', ')', '+', ';'
                                                    , '<', '=', '>', '@', '^'
                                                    , '_', '`', '{', '|', '}'
                                                    , '~', ' ' };
                optimizedCharset0 = new OptimizedCharset(ranges, oneOfChars);
            }

            {
                OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                { new OptimizedCharset.Range('A', 'Z'),
                  new OptimizedCharset.Range('a', 'z'),
                  new OptimizedCharset.Range('0', '9'),
                  new OptimizedCharset.Range(',', '.'), };
                char[] oneOfChars = new char[]    { '!', '"', '#', '$', '%'
                                                    , '&', '(', ')', '*', '+'
                                                    , '/', ':', ';', '<', '='
                                                    , '>', '?', '@', '\\', '^'
                                                    , '_', '`', '{', '|', '}'
                                                    , '~' };
                optimizedCharset1 = new OptimizedCharset(ranges, oneOfChars);
            }


            {
                string[] literals =
                { "<>", ">=", "<=", "^", "*", "/", "+", "-",
                  "&",   "=",  "<",  ">" };
                optimizedLiterals0 = new OptimizedLiterals(literals);
            }
        }
        static ExcelFormula()
        {
            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('0','9'),
                   new OptimizedCharset.Range(',','.'),
                   };
               char[] oneOfChars = new char[]    {'!','"','#','$','%'
                                                  ,'&','(',')','+',';'
                                                  ,'<','=','>','@','^'
                                                  ,'_','`','{','|','}'
                                                  ,'~',' '};
               optimizedCharset0= new OptimizedCharset(ranges,oneOfChars);
            }
            
            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('A','Z'),
                   new OptimizedCharset.Range('a','z'),
                   new OptimizedCharset.Range('0','9'),
                   new OptimizedCharset.Range(',','.'),
                   };
               char[] oneOfChars = new char[]    {'!','"','#','$','%'
                                                  ,'&','(',')','*','+'
                                                  ,'/',':',';','<','='
                                                  ,'>','?','@','\\','^'
                                                  ,'_','`','{','|','}'
                                                  ,'~'};
               optimizedCharset1= new OptimizedCharset(ranges,oneOfChars);
            }
            
            
            {
               string[] literals=
               { "<>",">=","<=","^","*","/","+","-",
                  "&","=","<",">" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }

            
        }
        static CSharp3Fast()
        {
            {
               char[] oneOfChars = new char[]    {'\'','"','\\','0','a'
                                                  ,'b','f','n','r','t'
                                                  ,'v'};
               optimizedCharset0= new OptimizedCharset(null,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u2000','\u200a'),
                   };
               char[] oneOfChars = new char[]    {'\u0020','\u00a0','\u1680','\u180e','\u202f'
                                                  ,'\u205f','\u3000'};
               optimizedCharset1= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               string[] literals=
               { "abstract","as","base","bool","break","byte","case","catch",
                  "char","checked","class","const","continue","decimal","default","delegate",
                  "do","double","else","enum","event","explicit","extern","false",
                  "finally","fixed","float","for","foreach","goto","if","implicit",
                  "in","int","interface","internal","is","lock","long","namespace",
                  "new","null","object","operator","out","override","params","private",
                  "protected","public","readonly","ref","return","sbyte","sealed","short",
                  "sizeof","stackalloc","static","string","struct","switch","this","throw",
                  "true","try","typeof","uint","ulong","unchecked","unsafe","ushort",
                  "using","virtual","void","volatile","while" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "{","}","[","]","(",")",".",",",
                  ":",";","+","-","*"," /","%","&",
                  "|","^","!","~","=","<",">","?",
                  "??","::","++","--","&&","||","->","==",
                  "!=","<=",">=","+=","-=","*="," /=","%=",
                  "&=","|=","^=","<<",">>","<<=",">>=","=>" };
               optimizedLiterals1= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "sbyte","byte","short","ushort","int","uint","long","ulong",
                  "char" };
               optimizedLiterals2= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "bool","byte","char","decimal","double","float","int","long",
                  "object","sbyte","short","string","uint","ulong","ushort" };
               optimizedLiterals3= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","abstract","sealed","static",
                  "unsafe" };
               optimizedLiterals4= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","readonly","volatile",
                  "unsafe" };
               optimizedLiterals5= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals6= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals7= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals8= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","virtual","sealed","override",
                  "abstract","extern","unsafe" };
               optimizedLiterals9= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "++","--","+","-","!","~","true","false" };
               optimizedLiterals10= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "+","-","*","/","%","&","|","^",
                  "<<",">>","==","!=",">=","<=",">","<" };
               optimizedLiterals11= new OptimizedLiterals(literals);
            }
        }
示例#8
0
        static CSharp3()
        {
            {
               char[] oneOfChars = new char[]    {'\'','"','\\','0','a'
                                                  ,'b','f','n','r','t'
                                                  ,'v'};
               optimizedCharset0= new OptimizedCharset(null,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u2000','\u200a'),
                   };
               char[] oneOfChars = new char[]    {'\u0020','\u00a0','\u1680','\u180e','\u202f'
                                                  ,'\u205f','\u3000'};
               optimizedCharset1= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0041','\u005a'),
                   new OptimizedCharset.Range('\u00c0','\u00d6'),
                   new OptimizedCharset.Range('\u00d8','\u00de'),
                   new OptimizedCharset.Range('\u0178','\u0179'),
                   new OptimizedCharset.Range('\u0181','\u0182'),
                   new OptimizedCharset.Range('\u0186','\u0187'),
                   new OptimizedCharset.Range('\u0189','\u018b'),
                   new OptimizedCharset.Range('\u018e','\u0191'),
                   new OptimizedCharset.Range('\u0193','\u0194'),
                   new OptimizedCharset.Range('\u0196','\u0198'),
                   new OptimizedCharset.Range('\u019c','\u019d'),
                   new OptimizedCharset.Range('\u019f','\u01a0'),
                   new OptimizedCharset.Range('\u01a6','\u01a7'),
                   new OptimizedCharset.Range('\u01ae','\u01af'),
                   new OptimizedCharset.Range('\u01b1','\u01b3'),
                   new OptimizedCharset.Range('\u01b7','\u01b8'),
                   new OptimizedCharset.Range('\u01f6','\u01f8'),
                   new OptimizedCharset.Range('\u0388','\u038a'),
                   new OptimizedCharset.Range('\u038e','\u038f'),
                   new OptimizedCharset.Range('\u0391','\u03a1'),
                   new OptimizedCharset.Range('\u03a3','\u03ab'),
                   new OptimizedCharset.Range('\u03d2','\u03d4'),
                   new OptimizedCharset.Range('\u03f9','\u03fa'),
                   new OptimizedCharset.Range('\u0400','\u042f'),
                   new OptimizedCharset.Range('\u04c0','\u04c1'),
                   new OptimizedCharset.Range('\u0531','\u0556'),
                   new OptimizedCharset.Range('\u10a0','\u10c5'),
                   new OptimizedCharset.Range('\u1f08','\u1f0f'),
                   new OptimizedCharset.Range('\u1f18','\u1f1d'),
                   new OptimizedCharset.Range('\u1f28','\u1f2f'),
                   new OptimizedCharset.Range('\u1f38','\u1f3f'),
                   new OptimizedCharset.Range('\u1f48','\u1f4d'),
                   new OptimizedCharset.Range('\u1f68','\u1f6f'),
                   new OptimizedCharset.Range('\u1fb8','\u1fbb'),
                   new OptimizedCharset.Range('\u1fc8','\u1fcb'),
                   new OptimizedCharset.Range('\u1fd8','\u1fdb'),
                   new OptimizedCharset.Range('\u1fe8','\u1fec'),
                   new OptimizedCharset.Range('\u1ff8','\u1ffb'),
                   new OptimizedCharset.Range('\u210b','\u210d'),
                   new OptimizedCharset.Range('\u2110','\u2112'),
                   new OptimizedCharset.Range('\u2119','\u211d'),
                   new OptimizedCharset.Range('\u212a','\u212d'),
                   new OptimizedCharset.Range('\u2130','\u2131'),
                   new OptimizedCharset.Range('\u213e','\u213f'),
                   new OptimizedCharset.Range('\uff21','\uff3a'),
                   };
               char[] oneOfChars = new char[]    {'\u0100','\u0102','\u0104','\u0106','\u0108'
                                                  ,'\u010a','\u010c','\u010e','\u0110','\u0112'
                                                  ,'\u0114','\u0116','\u0118','\u011a','\u011c'
                                                  ,'\u011e','\u0120','\u0122','\u0124','\u0126'
                                                  ,'\u0128','\u012a','\u012c','\u012e','\u0130'
                                                  ,'\u0132','\u0134','\u0136','\u0139','\u013b'
                                                  ,'\u013d','\u013f','\u0141','\u0143','\u0145'
                                                  ,'\u0147','\u014a','\u014c','\u014e','\u0150'
                                                  ,'\u0152','\u0154','\u0156','\u0158','\u015a'
                                                  ,'\u015c','\u015e','\u0160','\u0162','\u0164'
                                                  ,'\u0166','\u0168','\u016a','\u016c','\u016e'
                                                  ,'\u0170','\u0172','\u0174','\u0176','\u017b'
                                                  ,'\u017d','\u0184','\u01a2','\u01a4','\u01a9'
                                                  ,'\u01ac','\u01b5','\u01bc','\u01c4','\u01c7'
                                                  ,'\u01ca','\u01cd','\u01cf','\u01d1','\u01d3'
                                                  ,'\u01d5','\u01d7','\u01d9','\u01db','\u01de'
                                                  ,'\u01e0','\u01e2','\u01e4','\u01e6','\u01e8'
                                                  ,'\u01ea','\u01ec','\u01ee','\u01f1','\u01f4'
                                                  ,'\u01fa','\u01fc','\u01fe','\u0200','\u0202'
                                                  ,'\u0204','\u0206','\u0208','\u020a','\u020c'
                                                  ,'\u020e','\u0210','\u0212','\u0214','\u0216'
                                                  ,'\u0218','\u021a','\u021c','\u021e','\u0220'
                                                  ,'\u0222','\u0224','\u0226','\u0228','\u022a'
                                                  ,'\u022c','\u022e','\u0230','\u0232','\u0386'
                                                  ,'\u038c','\u03d8','\u03da','\u03dc','\u03de'
                                                  ,'\u03e0','\u03e2','\u03e4','\u03e6','\u03e8'
                                                  ,'\u03ea','\u03ec','\u03ee','\u03f4','\u03f7'
                                                  ,'\u0460','\u0462','\u0464','\u0466','\u0468'
                                                  ,'\u046a','\u046c','\u046e','\u0470','\u0472'
                                                  ,'\u0474','\u0476','\u0478','\u047a','\u047c'
                                                  ,'\u047e','\u0480','\u048a','\u048c','\u048e'
                                                  ,'\u0490','\u0492','\u0494','\u0496','\u0498'
                                                  ,'\u049a','\u049c','\u049e','\u04a0','\u04a2'
                                                  ,'\u04a4','\u04a6','\u04a8','\u04aa','\u04ac'
                                                  ,'\u04ae','\u04b0','\u04b2','\u04b4','\u04b6'
                                                  ,'\u04b8','\u04ba','\u04bc','\u04be','\u04c3'
                                                  ,'\u04c5','\u04c7','\u04c9','\u04cb','\u04cd'
                                                  ,'\u04d0','\u04d2','\u04d4','\u04d6','\u04d8'
                                                  ,'\u04da','\u04dc','\u04de','\u04e0','\u04e2'
                                                  ,'\u04e4','\u04e6','\u04e8','\u04ea','\u04ec'
                                                  ,'\u04ee','\u04f0','\u04f2','\u04f4','\u04f8'
                                                  ,'\u0500','\u0502','\u0504','\u0506','\u0508'
                                                  ,'\u050a','\u050c','\u050e','\u1e00','\u1e02'
                                                  ,'\u1e04','\u1e06','\u1e08','\u1e0a','\u1e0c'
                                                  ,'\u1e0e','\u1e10','\u1e12','\u1e14','\u1e16'
                                                  ,'\u1e18','\u1e1a','\u1e1c','\u1e1e','\u1e20'
                                                  ,'\u1e22','\u1e24','\u1e26','\u1e28','\u1e2a'
                                                  ,'\u1e2c','\u1e2e','\u1e30','\u1e32','\u1e34'
                                                  ,'\u1e36','\u1e38','\u1e3a','\u1e3c','\u1e3e'
                                                  ,'\u1e40','\u1e42','\u1e44','\u1e46','\u1e48'
                                                  ,'\u1e4a','\u1e4c','\u1e4e','\u1e50','\u1e52'
                                                  ,'\u1e54','\u1e56','\u1e58','\u1e5a','\u1e5c'
                                                  ,'\u1e5e','\u1e60','\u1e62','\u1e64','\u1e66'
                                                  ,'\u1e68','\u1e6a','\u1e6c','\u1e6e','\u1e70'
                                                  ,'\u1e72','\u1e74','\u1e76','\u1e78','\u1e7a'
                                                  ,'\u1e7c','\u1e7e','\u1e80','\u1e82','\u1e84'
                                                  ,'\u1e86','\u1e88','\u1e8a','\u1e8c','\u1e8e'
                                                  ,'\u1e90','\u1e92','\u1e94','\u1ea0','\u1ea2'
                                                  ,'\u1ea4','\u1ea6','\u1ea8','\u1eaa','\u1eac'
                                                  ,'\u1eae','\u1eb0','\u1eb2','\u1eb4','\u1eb6'
                                                  ,'\u1eb8','\u1eba','\u1ebc','\u1ebe','\u1ec0'
                                                  ,'\u1ec2','\u1ec4','\u1ec6','\u1ec8','\u1eca'
                                                  ,'\u1ecc','\u1ece','\u1ed0','\u1ed2','\u1ed4'
                                                  ,'\u1ed6','\u1ed8','\u1eda','\u1edc','\u1ede'
                                                  ,'\u1ee0','\u1ee2','\u1ee4','\u1ee6','\u1ee8'
                                                  ,'\u1eea','\u1eec','\u1eee','\u1ef0','\u1ef2'
                                                  ,'\u1ef4','\u1ef6','\u1ef8','\u1f59','\u1f5b'
                                                  ,'\u1f5d','\u1f5f','\u2102','\u2107','\u2115'
                                                  ,'\u2124','\u2126','\u2128','\u2133','\u2145'
                                                  };
               optimizedCharset2= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0061','\u007a'),
                   new OptimizedCharset.Range('\u00df','\u00f6'),
                   new OptimizedCharset.Range('\u00f8','\u00ff'),
                   new OptimizedCharset.Range('\u0137','\u0138'),
                   new OptimizedCharset.Range('\u0148','\u0149'),
                   new OptimizedCharset.Range('\u017e','\u0180'),
                   new OptimizedCharset.Range('\u018c','\u018d'),
                   new OptimizedCharset.Range('\u0199','\u019b'),
                   new OptimizedCharset.Range('\u01aa','\u01ab'),
                   new OptimizedCharset.Range('\u01b9','\u01ba'),
                   new OptimizedCharset.Range('\u01bd','\u01bf'),
                   new OptimizedCharset.Range('\u01dc','\u01dd'),
                   new OptimizedCharset.Range('\u01ef','\u01f0'),
                   new OptimizedCharset.Range('\u0233','\u0236'),
                   new OptimizedCharset.Range('\u0250','\u02af'),
                   new OptimizedCharset.Range('\u03ac','\u03ce'),
                   new OptimizedCharset.Range('\u03d0','\u03d1'),
                   new OptimizedCharset.Range('\u03d5','\u03d7'),
                   new OptimizedCharset.Range('\u03ef','\u03f3'),
                   new OptimizedCharset.Range('\u0430','\u045f'),
                   new OptimizedCharset.Range('\u0561','\u0587'),
                   new OptimizedCharset.Range('\u1d00','\u1d2b'),
                   new OptimizedCharset.Range('\u1d62','\u1d6b'),
                   new OptimizedCharset.Range('\u1e95','\u1e9b'),
                   new OptimizedCharset.Range('\u1f00','\u1f07'),
                   new OptimizedCharset.Range('\u1f10','\u1f15'),
                   new OptimizedCharset.Range('\u1f20','\u1f27'),
                   new OptimizedCharset.Range('\u1f30','\u1f37'),
                   new OptimizedCharset.Range('\u1f40','\u1f45'),
                   new OptimizedCharset.Range('\u1f50','\u1f57'),
                   new OptimizedCharset.Range('\u1f60','\u1f67'),
                   new OptimizedCharset.Range('\u1f70','\u1f7d'),
                   new OptimizedCharset.Range('\u1f80','\u1f87'),
                   new OptimizedCharset.Range('\u1f90','\u1f97'),
                   new OptimizedCharset.Range('\u1fa0','\u1fa7'),
                   new OptimizedCharset.Range('\u1fb0','\u1fb4'),
                   new OptimizedCharset.Range('\u1fb6','\u1fb7'),
                   new OptimizedCharset.Range('\u1fc2','\u1fc4'),
                   new OptimizedCharset.Range('\u1fc6','\u1fc7'),
                   new OptimizedCharset.Range('\u1fd0','\u1fd3'),
                   new OptimizedCharset.Range('\u1fd6','\u1fd7'),
                   new OptimizedCharset.Range('\u1fe0','\u1fe7'),
                   new OptimizedCharset.Range('\u1ff2','\u1ff4'),
                   new OptimizedCharset.Range('\u1ff6','\u1ff7'),
                   new OptimizedCharset.Range('\u210e','\u210f'),
                   new OptimizedCharset.Range('\u2146','\u2149'),
                   new OptimizedCharset.Range('\ufb00','\ufb06'),
                   new OptimizedCharset.Range('\ufb13','\ufb17'),
                   new OptimizedCharset.Range('\uff41','\uff5a'),
                   };
               char[] oneOfChars = new char[]    {'\u00aa','\u00b5','\u00ba','\u0101','\u0103'
                                                  ,'\u0105','\u0107','\u0109','\u010b','\u010d'
                                                  ,'\u010f','\u0111','\u0113','\u0115','\u0117'
                                                  ,'\u0119','\u011b','\u011d','\u011f','\u0121'
                                                  ,'\u0123','\u0125','\u0127','\u0129','\u012b'
                                                  ,'\u012d','\u012f','\u0131','\u0133','\u0135'
                                                  ,'\u013a','\u013c','\u013e','\u0140','\u0142'
                                                  ,'\u0144','\u0146','\u014b','\u014d','\u014f'
                                                  ,'\u0151','\u0153','\u0155','\u0157','\u0159'
                                                  ,'\u015b','\u015d','\u015f','\u0161','\u0163'
                                                  ,'\u0165','\u0167','\u0169','\u016b','\u016d'
                                                  ,'\u016f','\u0171','\u0173','\u0175','\u0177'
                                                  ,'\u017a','\u017c','\u0183','\u0185','\u0188'
                                                  ,'\u0192','\u0195','\u019e','\u01a1','\u01a3'
                                                  ,'\u01a5','\u01a8','\u01ad','\u01b0','\u01b4'
                                                  ,'\u01b6','\u01c6','\u01c9','\u01cc','\u01ce'
                                                  ,'\u01d0','\u01d2','\u01d4','\u01d6','\u01d8'
                                                  ,'\u01da','\u01df','\u01e1','\u01e3','\u01e5'
                                                  ,'\u01e7','\u01e9','\u01eb','\u01ed','\u01f3'
                                                  ,'\u01f5','\u01f9','\u01fb','\u01fd','\u01ff'
                                                  ,'\u0201','\u0203','\u0205','\u0207','\u0209'
                                                  ,'\u020b','\u020d','\u020f','\u0211','\u0213'
                                                  ,'\u0215','\u0217','\u0219','\u021b','\u021d'
                                                  ,'\u021f','\u0221','\u0223','\u0225','\u0227'
                                                  ,'\u0229','\u022b','\u022d','\u022f','\u0231'
                                                  ,'\u0390','\u03d9','\u03db','\u03dd','\u03df'
                                                  ,'\u03e1','\u03e3','\u03e5','\u03e7','\u03e9'
                                                  ,'\u03eb','\u03ed','\u03f5','\u03f8','\u03fb'
                                                  ,'\u0461','\u0463','\u0465','\u0467','\u0469'
                                                  ,'\u046b','\u046d','\u046f','\u0471','\u0473'
                                                  ,'\u0475','\u0477','\u0479','\u047b','\u047d'
                                                  ,'\u047f','\u0481','\u048b','\u048d','\u048f'
                                                  ,'\u0491','\u0493','\u0495','\u0497','\u0499'
                                                  ,'\u049b','\u049d','\u049f','\u04a1','\u04a3'
                                                  ,'\u04a5','\u04a7','\u04a9','\u04ab','\u04ad'
                                                  ,'\u04af','\u04b1','\u04b3','\u04b5','\u04b7'
                                                  ,'\u04b9','\u04bb','\u04bd','\u04bf','\u04c2'
                                                  ,'\u04c4','\u04c6','\u04c8','\u04ca','\u04cc'
                                                  ,'\u04ce','\u04d1','\u04d3','\u04d5','\u04d7'
                                                  ,'\u04d9','\u04db','\u04dd','\u04df','\u04e1'
                                                  ,'\u04e3','\u04e5','\u04e7','\u04e9','\u04eb'
                                                  ,'\u04ed','\u04ef','\u04f1','\u04f3','\u04f5'
                                                  ,'\u04f9','\u0501','\u0503','\u0505','\u0507'
                                                  ,'\u0509','\u050b','\u050d','\u050f','\u1e01'
                                                  ,'\u1e03','\u1e05','\u1e07','\u1e09','\u1e0b'
                                                  ,'\u1e0d','\u1e0f','\u1e11','\u1e13','\u1e15'
                                                  ,'\u1e17','\u1e19','\u1e1b','\u1e1d','\u1e1f'
                                                  ,'\u1e21','\u1e23','\u1e25','\u1e27','\u1e29'
                                                  ,'\u1e2b','\u1e2d','\u1e2f','\u1e31','\u1e33'
                                                  ,'\u1e35','\u1e37','\u1e39','\u1e3b','\u1e3d'
                                                  ,'\u1e3f','\u1e41','\u1e43','\u1e45','\u1e47'
                                                  ,'\u1e49','\u1e4b','\u1e4d','\u1e4f','\u1e51'
                                                  ,'\u1e53','\u1e55','\u1e57','\u1e59','\u1e5b'
                                                  ,'\u1e5d','\u1e5f','\u1e61','\u1e63','\u1e65'
                                                  ,'\u1e67','\u1e69','\u1e6b','\u1e6d','\u1e6f'
                                                  ,'\u1e71','\u1e73','\u1e75','\u1e77','\u1e79'
                                                  ,'\u1e7b','\u1e7d','\u1e7f','\u1e81','\u1e83'
                                                  ,'\u1e85','\u1e87','\u1e89','\u1e8b','\u1e8d'
                                                  ,'\u1e8f','\u1e91','\u1e93','\u1ea1','\u1ea3'
                                                  ,'\u1ea5','\u1ea7','\u1ea9','\u1eab','\u1ead'
                                                  ,'\u1eaf','\u1eb1','\u1eb3','\u1eb5','\u1eb7'
                                                  ,'\u1eb9','\u1ebb','\u1ebd','\u1ebf','\u1ec1'
                                                  ,'\u1ec3','\u1ec5','\u1ec7','\u1ec9','\u1ecb'
                                                  ,'\u1ecd','\u1ecf','\u1ed1','\u1ed3','\u1ed5'
                                                  ,'\u1ed7','\u1ed9','\u1edb','\u1edd','\u1edf'
                                                  ,'\u1ee1','\u1ee3','\u1ee5','\u1ee7','\u1ee9'
                                                  ,'\u1eeb','\u1eed','\u1eef','\u1ef1','\u1ef3'
                                                  ,'\u1ef5','\u1ef7','\u1ef9','\u1fbe','\u2071'
                                                  ,'\u207f','\u210a','\u2113','\u212f','\u2134'
                                                  ,'\u2139','\u213d'};
               optimizedCharset3= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u1f88','\u1f8f'),
                   new OptimizedCharset.Range('\u1f98','\u1f9f'),
                   new OptimizedCharset.Range('\u1fa8','\u1faf'),
                   };
               char[] oneOfChars = new char[]    {'\u01c5','\u01c8','\u01cb','\u01f2','\u1fbc'
                                                  ,'\u1fcc','\u1ffc'};
               optimizedCharset4= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u02b0','\u02c1'),
                   new OptimizedCharset.Range('\u02c6','\u02d1'),
                   new OptimizedCharset.Range('\u02e0','\u02e4'),
                   new OptimizedCharset.Range('\u06e5','\u06e6'),
                   new OptimizedCharset.Range('\u1d2c','\u1d61'),
                   new OptimizedCharset.Range('\u3031','\u3035'),
                   new OptimizedCharset.Range('\u309d','\u309e'),
                   new OptimizedCharset.Range('\u30fc','\u30fe'),
                   new OptimizedCharset.Range('\uff9e','\uff9f'),
                   };
               char[] oneOfChars = new char[]    {'\u02ee','\u037a','\u0559','\u0640','\u0e46'
                                                  ,'\u0ec6','\u17d7','\u1843','\u3005','\u303b'
                                                  ,'\uff70'};
               optimizedCharset5= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u01c0','\u01c3'),
                   new OptimizedCharset.Range('\u05d0','\u05ea'),
                   new OptimizedCharset.Range('\u05f0','\u05f2'),
                   new OptimizedCharset.Range('\u0621','\u063a'),
                   new OptimizedCharset.Range('\u0641','\u064a'),
                   new OptimizedCharset.Range('\u066e','\u066f'),
                   new OptimizedCharset.Range('\u0671','\u06d3'),
                   new OptimizedCharset.Range('\u06ee','\u06ef'),
                   new OptimizedCharset.Range('\u06fa','\u06fc'),
                   new OptimizedCharset.Range('\u0712','\u072f'),
                   new OptimizedCharset.Range('\u074d','\u074f'),
                   new OptimizedCharset.Range('\u0780','\u07a5'),
                   new OptimizedCharset.Range('\u0904','\u0939'),
                   new OptimizedCharset.Range('\u0958','\u0961'),
                   new OptimizedCharset.Range('\u0985','\u098c'),
                   new OptimizedCharset.Range('\u098f','\u0990'),
                   new OptimizedCharset.Range('\u0993','\u09a8'),
                   new OptimizedCharset.Range('\u09aa','\u09b0'),
                   new OptimizedCharset.Range('\u09b6','\u09b9'),
                   new OptimizedCharset.Range('\u09dc','\u09dd'),
                   new OptimizedCharset.Range('\u09df','\u09e1'),
                   new OptimizedCharset.Range('\u09f0','\u09f1'),
                   new OptimizedCharset.Range('\u0a05','\u0a0a'),
                   new OptimizedCharset.Range('\u0a0f','\u0a10'),
                   new OptimizedCharset.Range('\u0a13','\u0a28'),
                   new OptimizedCharset.Range('\u0a2a','\u0a30'),
                   new OptimizedCharset.Range('\u0a32','\u0a33'),
                   new OptimizedCharset.Range('\u0a35','\u0a36'),
                   new OptimizedCharset.Range('\u0a38','\u0a39'),
                   new OptimizedCharset.Range('\u0a59','\u0a5c'),
                   new OptimizedCharset.Range('\u0a72','\u0a74'),
                   new OptimizedCharset.Range('\u0a85','\u0a8d'),
                   new OptimizedCharset.Range('\u0a8f','\u0a91'),
                   new OptimizedCharset.Range('\u0a93','\u0aa8'),
                   new OptimizedCharset.Range('\u0aaa','\u0ab0'),
                   new OptimizedCharset.Range('\u0ab2','\u0ab3'),
                   new OptimizedCharset.Range('\u0ab5','\u0ab9'),
                   new OptimizedCharset.Range('\u0ae0','\u0ae1'),
                   new OptimizedCharset.Range('\u0b05','\u0b0c'),
                   new OptimizedCharset.Range('\u0b0f','\u0b10'),
                   new OptimizedCharset.Range('\u0b13','\u0b28'),
                   new OptimizedCharset.Range('\u0b2a','\u0b30'),
                   new OptimizedCharset.Range('\u0b32','\u0b33'),
                   new OptimizedCharset.Range('\u0b35','\u0b39'),
                   new OptimizedCharset.Range('\u0b5c','\u0b5d'),
                   new OptimizedCharset.Range('\u0b5f','\u0b61'),
                   new OptimizedCharset.Range('\u0b85','\u0b8a'),
                   new OptimizedCharset.Range('\u0b8e','\u0b90'),
                   new OptimizedCharset.Range('\u0b92','\u0b95'),
                   new OptimizedCharset.Range('\u0b99','\u0b9a'),
                   new OptimizedCharset.Range('\u0b9e','\u0b9f'),
                   new OptimizedCharset.Range('\u0ba3','\u0ba4'),
                   new OptimizedCharset.Range('\u0ba8','\u0baa'),
                   new OptimizedCharset.Range('\u0bae','\u0bb5'),
                   new OptimizedCharset.Range('\u0bb7','\u0bb9'),
                   new OptimizedCharset.Range('\u0c05','\u0c0c'),
                   new OptimizedCharset.Range('\u0c0e','\u0c10'),
                   new OptimizedCharset.Range('\u0c12','\u0c28'),
                   new OptimizedCharset.Range('\u0c2a','\u0c33'),
                   new OptimizedCharset.Range('\u0c35','\u0c39'),
                   new OptimizedCharset.Range('\u0c60','\u0c61'),
                   new OptimizedCharset.Range('\u0c85','\u0c8c'),
                   new OptimizedCharset.Range('\u0c8e','\u0c90'),
                   new OptimizedCharset.Range('\u0c92','\u0ca8'),
                   new OptimizedCharset.Range('\u0caa','\u0cb3'),
                   new OptimizedCharset.Range('\u0cb5','\u0cb9'),
                   new OptimizedCharset.Range('\u0ce0','\u0ce1'),
                   new OptimizedCharset.Range('\u0d05','\u0d0c'),
                   new OptimizedCharset.Range('\u0d0e','\u0d10'),
                   new OptimizedCharset.Range('\u0d12','\u0d28'),
                   new OptimizedCharset.Range('\u0d2a','\u0d39'),
                   new OptimizedCharset.Range('\u0d60','\u0d61'),
                   new OptimizedCharset.Range('\u0d85','\u0d96'),
                   new OptimizedCharset.Range('\u0d9a','\u0db1'),
                   new OptimizedCharset.Range('\u0db3','\u0dbb'),
                   new OptimizedCharset.Range('\u0dc0','\u0dc6'),
                   new OptimizedCharset.Range('\u0e01','\u0e30'),
                   new OptimizedCharset.Range('\u0e32','\u0e33'),
                   new OptimizedCharset.Range('\u0e40','\u0e45'),
                   new OptimizedCharset.Range('\u0e81','\u0e82'),
                   new OptimizedCharset.Range('\u0e87','\u0e88'),
                   new OptimizedCharset.Range('\u0e94','\u0e97'),
                   new OptimizedCharset.Range('\u0e99','\u0e9f'),
                   new OptimizedCharset.Range('\u0ea1','\u0ea3'),
                   new OptimizedCharset.Range('\u0eaa','\u0eab'),
                   new OptimizedCharset.Range('\u0ead','\u0eb0'),
                   new OptimizedCharset.Range('\u0eb2','\u0eb3'),
                   new OptimizedCharset.Range('\u0ec0','\u0ec4'),
                   new OptimizedCharset.Range('\u0edc','\u0edd'),
                   new OptimizedCharset.Range('\u0f40','\u0f47'),
                   new OptimizedCharset.Range('\u0f49','\u0f6a'),
                   new OptimizedCharset.Range('\u0f88','\u0f8b'),
                   new OptimizedCharset.Range('\u1000','\u1021'),
                   new OptimizedCharset.Range('\u1023','\u1027'),
                   new OptimizedCharset.Range('\u1029','\u102a'),
                   new OptimizedCharset.Range('\u1050','\u1055'),
                   new OptimizedCharset.Range('\u10d0','\u10f8'),
                   new OptimizedCharset.Range('\u1100','\u1159'),
                   new OptimizedCharset.Range('\u115f','\u11a2'),
                   new OptimizedCharset.Range('\u11a8','\u11f9'),
                   new OptimizedCharset.Range('\u1200','\u1206'),
                   new OptimizedCharset.Range('\u1208','\u1246'),
                   new OptimizedCharset.Range('\u124a','\u124d'),
                   new OptimizedCharset.Range('\u1250','\u1256'),
                   new OptimizedCharset.Range('\u125a','\u125d'),
                   new OptimizedCharset.Range('\u1260','\u1286'),
                   new OptimizedCharset.Range('\u128a','\u128d'),
                   new OptimizedCharset.Range('\u1290','\u12ae'),
                   new OptimizedCharset.Range('\u12b2','\u12b5'),
                   new OptimizedCharset.Range('\u12b8','\u12be'),
                   new OptimizedCharset.Range('\u12c2','\u12c5'),
                   new OptimizedCharset.Range('\u12c8','\u12ce'),
                   new OptimizedCharset.Range('\u12d0','\u12d6'),
                   new OptimizedCharset.Range('\u12d8','\u12ee'),
                   new OptimizedCharset.Range('\u12f0','\u130e'),
                   new OptimizedCharset.Range('\u1312','\u1315'),
                   new OptimizedCharset.Range('\u1318','\u131e'),
                   new OptimizedCharset.Range('\u1320','\u1346'),
                   new OptimizedCharset.Range('\u1348','\u135a'),
                   new OptimizedCharset.Range('\u13a0','\u13f4'),
                   new OptimizedCharset.Range('\u1401','\u166c'),
                   new OptimizedCharset.Range('\u166f','\u1676'),
                   new OptimizedCharset.Range('\u1681','\u169a'),
                   new OptimizedCharset.Range('\u16a0','\u16ea'),
                   new OptimizedCharset.Range('\u1700','\u170c'),
                   new OptimizedCharset.Range('\u170e','\u1711'),
                   new OptimizedCharset.Range('\u1720','\u1731'),
                   new OptimizedCharset.Range('\u1740','\u1751'),
                   new OptimizedCharset.Range('\u1760','\u176c'),
                   new OptimizedCharset.Range('\u176e','\u1770'),
                   new OptimizedCharset.Range('\u1780','\u17b3'),
                   new OptimizedCharset.Range('\u1820','\u1842'),
                   new OptimizedCharset.Range('\u1844','\u1877'),
                   new OptimizedCharset.Range('\u1880','\u18a8'),
                   new OptimizedCharset.Range('\u1900','\u191c'),
                   new OptimizedCharset.Range('\u1950','\u196d'),
                   new OptimizedCharset.Range('\u2135','\u2138'),
                   new OptimizedCharset.Range('\u3041','\u3096'),
                   new OptimizedCharset.Range('\u30a1','\u30fa'),
                   new OptimizedCharset.Range('\u3105','\u312c'),
                   new OptimizedCharset.Range('\u3131','\u318e'),
                   new OptimizedCharset.Range('\u31a0','\u31b7'),
                   new OptimizedCharset.Range('\u31f0','\u31ff'),
                   new OptimizedCharset.Range('\ua000','\ua48c'),
                   new OptimizedCharset.Range('\ufb1f','\ufb28'),
                   new OptimizedCharset.Range('\ufb2a','\ufb36'),
                   new OptimizedCharset.Range('\ufb38','\ufb3c'),
                   new OptimizedCharset.Range('\ufb40','\ufb41'),
                   new OptimizedCharset.Range('\ufb43','\ufb44'),
                   new OptimizedCharset.Range('\ufb46','\ufbb1'),
                   new OptimizedCharset.Range('\ufbd3','\ufd3d'),
                   new OptimizedCharset.Range('\ufd50','\ufd8f'),
                   new OptimizedCharset.Range('\ufd92','\ufdc7'),
                   new OptimizedCharset.Range('\ufdf0','\ufdfb'),
                   new OptimizedCharset.Range('\ufe70','\ufe74'),
                   new OptimizedCharset.Range('\ufe76','\ufefc'),
                   new OptimizedCharset.Range('\uff66','\uff6f'),
                   new OptimizedCharset.Range('\uff71','\uff9d'),
                   new OptimizedCharset.Range('\uffa0','\uffbe'),
                   new OptimizedCharset.Range('\uffc2','\uffc7'),
                   new OptimizedCharset.Range('\uffca','\uffcf'),
                   new OptimizedCharset.Range('\uffd2','\uffd7'),
                   new OptimizedCharset.Range('\uffda','\uffdc'),
                   };
               char[] oneOfChars = new char[]    {'\u01bb','\u06d5','\u06ff','\u0710','\u07b1'
                                                  ,'\u093d','\u0950','\u09b2','\u09bd','\u0a5e'
                                                  ,'\u0abd','\u0ad0','\u0b3d','\u0b71','\u0b83'
                                                  ,'\u0b9c','\u0cbd','\u0cde','\u0dbd','\u0e84'
                                                  ,'\u0e8a','\u0e8d','\u0ea5','\u0ea7','\u0ebd'
                                                  ,'\u0f00','\u1248','\u1258','\u1288','\u12b0'
                                                  ,'\u12c0','\u1310','\u17dc','\u3006','\u303c'
                                                  ,'\u309f','\u30ff','\u3400','\u4db5','\u4e00'
                                                  ,'\u9fa5','\uac00','\ud7a3','\ufb1d','\ufb3e'
                                                  };
               optimizedCharset6= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0300','\u0357'),
                   new OptimizedCharset.Range('\u035d','\u036f'),
                   new OptimizedCharset.Range('\u0483','\u0486'),
                   new OptimizedCharset.Range('\u0591','\u05a1'),
                   new OptimizedCharset.Range('\u05a3','\u05b9'),
                   new OptimizedCharset.Range('\u05bb','\u05bd'),
                   new OptimizedCharset.Range('\u05c1','\u05c2'),
                   new OptimizedCharset.Range('\u0610','\u0615'),
                   new OptimizedCharset.Range('\u064b','\u0658'),
                   new OptimizedCharset.Range('\u06d6','\u06dc'),
                   new OptimizedCharset.Range('\u06df','\u06e4'),
                   new OptimizedCharset.Range('\u06e7','\u06e8'),
                   new OptimizedCharset.Range('\u06ea','\u06ed'),
                   new OptimizedCharset.Range('\u0730','\u074a'),
                   new OptimizedCharset.Range('\u07a6','\u07b0'),
                   new OptimizedCharset.Range('\u0901','\u0902'),
                   new OptimizedCharset.Range('\u0941','\u0948'),
                   new OptimizedCharset.Range('\u0951','\u0954'),
                   new OptimizedCharset.Range('\u0962','\u0963'),
                   new OptimizedCharset.Range('\u09c1','\u09c4'),
                   new OptimizedCharset.Range('\u09e2','\u09e3'),
                   new OptimizedCharset.Range('\u0a01','\u0a02'),
                   new OptimizedCharset.Range('\u0a41','\u0a42'),
                   new OptimizedCharset.Range('\u0a47','\u0a48'),
                   new OptimizedCharset.Range('\u0a4b','\u0a4d'),
                   new OptimizedCharset.Range('\u0a70','\u0a71'),
                   new OptimizedCharset.Range('\u0a81','\u0a82'),
                   new OptimizedCharset.Range('\u0ac1','\u0ac5'),
                   new OptimizedCharset.Range('\u0ac7','\u0ac8'),
                   new OptimizedCharset.Range('\u0ae2','\u0ae3'),
                   new OptimizedCharset.Range('\u0b41','\u0b43'),
                   new OptimizedCharset.Range('\u0c3e','\u0c40'),
                   new OptimizedCharset.Range('\u0c46','\u0c48'),
                   new OptimizedCharset.Range('\u0c4a','\u0c4d'),
                   new OptimizedCharset.Range('\u0c55','\u0c56'),
                   new OptimizedCharset.Range('\u0ccc','\u0ccd'),
                   new OptimizedCharset.Range('\u0d41','\u0d43'),
                   new OptimizedCharset.Range('\u0dd2','\u0dd4'),
                   new OptimizedCharset.Range('\u0e34','\u0e3a'),
                   new OptimizedCharset.Range('\u0e47','\u0e4e'),
                   new OptimizedCharset.Range('\u0eb4','\u0eb9'),
                   new OptimizedCharset.Range('\u0ebb','\u0ebc'),
                   new OptimizedCharset.Range('\u0ec8','\u0ecd'),
                   new OptimizedCharset.Range('\u0f18','\u0f19'),
                   new OptimizedCharset.Range('\u0f71','\u0f7e'),
                   new OptimizedCharset.Range('\u0f80','\u0f84'),
                   new OptimizedCharset.Range('\u0f86','\u0f87'),
                   new OptimizedCharset.Range('\u0f90','\u0f97'),
                   new OptimizedCharset.Range('\u0f99','\u0fbc'),
                   new OptimizedCharset.Range('\u102d','\u1030'),
                   new OptimizedCharset.Range('\u1036','\u1037'),
                   new OptimizedCharset.Range('\u1058','\u1059'),
                   new OptimizedCharset.Range('\u1712','\u1714'),
                   new OptimizedCharset.Range('\u1732','\u1734'),
                   new OptimizedCharset.Range('\u1752','\u1753'),
                   new OptimizedCharset.Range('\u1772','\u1773'),
                   new OptimizedCharset.Range('\u17b7','\u17bd'),
                   new OptimizedCharset.Range('\u17c9','\u17d3'),
                   new OptimizedCharset.Range('\u180b','\u180d'),
                   new OptimizedCharset.Range('\u1920','\u1922'),
                   new OptimizedCharset.Range('\u1927','\u1928'),
                   new OptimizedCharset.Range('\u1939','\u193b'),
                   new OptimizedCharset.Range('\u20d0','\u20dc'),
                   new OptimizedCharset.Range('\u20e5','\u20ea'),
                   new OptimizedCharset.Range('\u302a','\u302f'),
                   new OptimizedCharset.Range('\u3099','\u309a'),
                   new OptimizedCharset.Range('\ufe20','\ufe23'),
                   };
               char[] oneOfChars = new char[]    {'\u05bf','\u05c4','\u0670','\u0711','\u093c'
                                                  ,'\u094d','\u0981','\u09bc','\u09cd','\u0a3c'
                                                  ,'\u0abc','\u0acd','\u0b01','\u0b3c','\u0b3f'
                                                  ,'\u0b4d','\u0b56','\u0b82','\u0bc0','\u0bcd'
                                                  ,'\u0cbc','\u0cbf','\u0cc6','\u0d4d','\u0dca'
                                                  ,'\u0dd6','\u0e31','\u0eb1','\u0f35','\u0f37'
                                                  ,'\u0f39','\u0fc6','\u1032','\u1039','\u17c6'
                                                  ,'\u17dd','\u18a9','\u1932','\u20e1','\ufb1e'
                                                  };
               optimizedCharset7= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u093e','\u0940'),
                   new OptimizedCharset.Range('\u0949','\u094c'),
                   new OptimizedCharset.Range('\u0982','\u0983'),
                   new OptimizedCharset.Range('\u09be','\u09c0'),
                   new OptimizedCharset.Range('\u09c7','\u09c8'),
                   new OptimizedCharset.Range('\u09cb','\u09cc'),
                   new OptimizedCharset.Range('\u0a3e','\u0a40'),
                   new OptimizedCharset.Range('\u0abe','\u0ac0'),
                   new OptimizedCharset.Range('\u0acb','\u0acc'),
                   new OptimizedCharset.Range('\u0b02','\u0b03'),
                   new OptimizedCharset.Range('\u0b47','\u0b48'),
                   new OptimizedCharset.Range('\u0b4b','\u0b4c'),
                   new OptimizedCharset.Range('\u0bbe','\u0bbf'),
                   new OptimizedCharset.Range('\u0bc1','\u0bc2'),
                   new OptimizedCharset.Range('\u0bc6','\u0bc8'),
                   new OptimizedCharset.Range('\u0bca','\u0bcc'),
                   new OptimizedCharset.Range('\u0c01','\u0c03'),
                   new OptimizedCharset.Range('\u0c41','\u0c44'),
                   new OptimizedCharset.Range('\u0c82','\u0c83'),
                   new OptimizedCharset.Range('\u0cc0','\u0cc4'),
                   new OptimizedCharset.Range('\u0cc7','\u0cc8'),
                   new OptimizedCharset.Range('\u0cca','\u0ccb'),
                   new OptimizedCharset.Range('\u0cd5','\u0cd6'),
                   new OptimizedCharset.Range('\u0d02','\u0d03'),
                   new OptimizedCharset.Range('\u0d3e','\u0d40'),
                   new OptimizedCharset.Range('\u0d46','\u0d48'),
                   new OptimizedCharset.Range('\u0d4a','\u0d4c'),
                   new OptimizedCharset.Range('\u0d82','\u0d83'),
                   new OptimizedCharset.Range('\u0dcf','\u0dd1'),
                   new OptimizedCharset.Range('\u0dd8','\u0ddf'),
                   new OptimizedCharset.Range('\u0df2','\u0df3'),
                   new OptimizedCharset.Range('\u0f3e','\u0f3f'),
                   new OptimizedCharset.Range('\u1056','\u1057'),
                   new OptimizedCharset.Range('\u17be','\u17c5'),
                   new OptimizedCharset.Range('\u17c7','\u17c8'),
                   new OptimizedCharset.Range('\u1923','\u1926'),
                   new OptimizedCharset.Range('\u1929','\u192b'),
                   new OptimizedCharset.Range('\u1930','\u1931'),
                   new OptimizedCharset.Range('\u1933','\u1938'),
                   };
               char[] oneOfChars = new char[]    {'\u0903','\u09d7','\u0a03','\u0a83','\u0ac9'
                                                  ,'\u0b3e','\u0b40','\u0b57','\u0bd7','\u0cbe'
                                                  ,'\u0d57','\u0f7f','\u102c','\u1031','\u1038'
                                                  ,'\u17b6'};
               optimizedCharset8= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0030','\u0039'),
                   new OptimizedCharset.Range('\u0660','\u0669'),
                   new OptimizedCharset.Range('\u06f0','\u06f9'),
                   new OptimizedCharset.Range('\u0966','\u096f'),
                   new OptimizedCharset.Range('\u09e6','\u09ef'),
                   new OptimizedCharset.Range('\u0a66','\u0a6f'),
                   new OptimizedCharset.Range('\u0ae6','\u0aef'),
                   new OptimizedCharset.Range('\u0b66','\u0b6f'),
                   new OptimizedCharset.Range('\u0be7','\u0bef'),
                   new OptimizedCharset.Range('\u0c66','\u0c6f'),
                   new OptimizedCharset.Range('\u0ce6','\u0cef'),
                   new OptimizedCharset.Range('\u0d66','\u0d6f'),
                   new OptimizedCharset.Range('\u0e50','\u0e59'),
                   new OptimizedCharset.Range('\u0ed0','\u0ed9'),
                   new OptimizedCharset.Range('\u0f20','\u0f29'),
                   new OptimizedCharset.Range('\u1040','\u1049'),
                   new OptimizedCharset.Range('\u1369','\u1371'),
                   new OptimizedCharset.Range('\u17e0','\u17e9'),
                   new OptimizedCharset.Range('\u1810','\u1819'),
                   new OptimizedCharset.Range('\u1946','\u194f'),
                   new OptimizedCharset.Range('\uff10','\uff19'),
                   };
               optimizedCharset9= new OptimizedCharset(ranges,null);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u203f','\u2040'),
                   new OptimizedCharset.Range('\ufe33','\ufe34'),
                   new OptimizedCharset.Range('\ufe4d','\ufe4f'),
                   };
               char[] oneOfChars = new char[]    {'\u005f','\u2054','\u30fb','\uff3f','\uff65'
                                                  };
               optimizedCharset10= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               OptimizedCharset.Range[] ranges = new OptimizedCharset.Range[]
                  {new OptimizedCharset.Range('\u0600','\u0603'),
                   new OptimizedCharset.Range('\u17b4','\u17b5'),
                   new OptimizedCharset.Range('\u200b','\u200f'),
                   new OptimizedCharset.Range('\u202a','\u202e'),
                   new OptimizedCharset.Range('\u2060','\u2063'),
                   new OptimizedCharset.Range('\u206a','\u206f'),
                   new OptimizedCharset.Range('\ufff9','\ufffb'),
                   };
               char[] oneOfChars = new char[]    {'\u00ad','\u06dd','\u070f','\ufeff'};
               optimizedCharset11= new OptimizedCharset(ranges,oneOfChars);
            }

            {
               string[] literals=
               { "abstract","as","base","bool","break","byte","case","catch",
                  "char","checked","class","const","continue","decimal","default","delegate",
                  "do","double","else","enum","event","explicit","extern","false",
                  "finally","fixed","float","for","foreach","goto","if","implicit",
                  "in","int","interface","internal","is","lock","long","namespace",
                  "new","null","object","operator","out","override","params","private",
                  "protected","public","readonly","ref","return","sbyte","sealed","short",
                  "sizeof","stackalloc","static","string","struct","switch","this","throw",
                  "true","try","typeof","uint","ulong","unchecked","unsafe","ushort",
                  "using","virtual","void","volatile","while" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "{","}","[","]","(",")",".",",",
                  ":",";","+","-","*"," /","%","&",
                  "|","^","!","~","=","<",">","?",
                  "??","::","++","--","&&","||","->","==",
                  "!=","<=",">=","+=","-=","*="," /=","%=",
                  "&=","|=","^=","<<",">>","<<=",">>=","=>" };
               optimizedLiterals1= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "sbyte","byte","short","ushort","int","uint","long","ulong",
                  "char" };
               optimizedLiterals2= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "bool","byte","char","decimal","double","float","int","long",
                  "object","sbyte","short","string","uint","ulong","ushort" };
               optimizedLiterals3= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","abstract","sealed","static",
                  "unsafe" };
               optimizedLiterals4= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","readonly","volatile",
                  "unsafe" };
               optimizedLiterals5= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals6= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals7= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","static","virtual","sealed",
                  "override","abstract","extern","unsafe" };
               optimizedLiterals8= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "new","public","protected","internal","private","virtual","sealed","override",
                  "abstract","extern","unsafe" };
               optimizedLiterals9= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "++","--","+","-","!","~","true","false" };
               optimizedLiterals10= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "+","-","*","/","%","&","|","^",
                  "<<",">>","==","!=",">=","<=",">","<" };
               optimizedLiterals11= new OptimizedLiterals(literals);
            }
        }