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

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

            {
               string[] literals=
               { "auto","register","static","extern","typedef","void","char","short",
                  "int","long","float","double","signed","unsigned","const","volatile",
                  "struct","union","enum","case","default","if","else","switch",
                  "goto","continue","break","return","sizeof","while","do","for" };
               optimizedLiterals1= new OptimizedLiterals(literals);
            }
        }
 static BinaryFileSchemaParser()
 {
     {
        string[] literals=
        { "bool","sbyte","ubyte","short","ushort","int","uint","long",
           "ulong" };
        optimizedLiterals0= new OptimizedLiterals(literals);
     }
 }
示例#3
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);
            }
        }
示例#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
 public bool OneOfLiterals(OptimizedLiterals litAlt)
 {
     OptimizedLiterals.Trie node = litAlt.literalsRoot;
     int matchPos = pos_-1;
     for (int pos = pos_; pos < srcLen_ ; ++pos)
     {
         if (node.bLitEnd_) matchPos = pos;
         char c = src_[pos];
         if (    node.children_==null 
             ||  c < node.cMin_ || c > node.cMin_ + node.children_.Length - 1
             ||  node.children_[c - node.cMin_] == null)
         {
             break;
         }
         node = node.children_[c - node.cMin_];
     }
     if (matchPos >= pos_)
     {
         pos_= matchPos;
         return true;
     }
     else return false;
 }
示例#6
0
        static python_2_5_2_i()
        {
            {
               char[] oneOfChars = new char[]    {'\\','\'','"','a','b'
                                                  ,'f','n','r','t','v'
                                                  };
               optimizedCharset0= new OptimizedCharset(null,oneOfChars);
            }
            
            
            {
               string[] literals=
               { "+=","-=","*=","/=","%=","**=",">>=","<<=",
                  "&=","^=","/=","//=" };
               optimizedLiterals0= new OptimizedLiterals(literals);
            }

            {
               string[] literals=
               { "and","del","from","not","while","as","elif","global",
                  "or","with","assert","else","if","pass","yield","break",
                  "except","import","print","class","exec","in","raise","continue",
                  "finally","is","return","def","for","lambda","try" };
               optimizedLiterals1= 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);
            }
        }
示例#9
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);
            }
        }
        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);
            }
        }