示例#1
0
        internal static Value Make(NamedBlock nb)
        {
            Value result = value;

            result.Kind            = Kinds.NamedBlock;
            result.namedBlockValue = nb;
            return(result);
        }
示例#2
0
        NamedBlock RebuildNamedBlock(
            object[] objects, int index, Composite composite, Func <int, object> reader)
        {
            var result = new NamedBlock();

            objects [index] = result;

            result.Name        = (string)reader(composite.Elements [0]);
            result.BlockEnd    = (int)(long)reader(composite.Elements [1]);
            result.Environment = (VmEnvironment)reader(composite.Elements [2]);

            return(result);
        }
示例#3
0
        int SerializeNamedBlock(NamedBlock namedBlock, object obj)
        {
            var composite = new Composite {
                Kind     = ObjectTypes.NamedBlock,
                Elements = new int[3]
            };
            var result = SerializeOneHashed(composite, obj);

            composite.Elements [0] = SerializeOneHashed(namedBlock.Name);
            composite.Elements [1] = SerializeOne(namedBlock.BlockEnd);
            composite.Elements [2] = Serialize(namedBlock.Environment);
            return(result);
        }
示例#4
0
 internal static CharGrouping Character(NamedBlock block, bool negative)
 {
     return new CharGrouping.NamedBlockCharGrouping(block, negative);
 }
示例#5
0
 /// <summary>
 /// Returns a pattern that matches a character that is not from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping Not(NamedBlock block)
 {
     return Character(block, true);
 }
示例#6
0
 internal static CharGroup Create(NamedBlock block, bool negative)
 {
     return(new NamedBlockCharGroup(block, negative));
 }
示例#7
0
 /// <summary>
 /// Gets a description of the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static string GetBlockDescription(NamedBlock block)
 {
     switch (block)
     {
         case NamedBlock.AlphabeticPresentationForms:
             return "FB00 - FB4F";
         case NamedBlock.Arabic:
             return "0600 - 06FF";
         case NamedBlock.ArabicPresentationFormsA:
             return "FB50 - FDFF";
         case NamedBlock.ArabicPresentationFormsB:
             return "FE70 - FEFF";
         case NamedBlock.Armenian:
             return "0530 - 058F";
         case NamedBlock.Arrows:
             return "2190 - 21FF";
         case NamedBlock.BasicLatin:
             return "0000 - 007F";
         case NamedBlock.Bengali:
             return "0980 - 09FF";
         case NamedBlock.BlockElements:
             return "2580 - 259F";
         case NamedBlock.Bopomofo:
             return "3100 - 312F";
         case NamedBlock.BopomofoExtended:
             return "31A0 - 31BF";
         case NamedBlock.BoxDrawing:
             return "2500 - 257F";
         case NamedBlock.BraillePatterns:
             return "2800 - 28FF";
         case NamedBlock.Buhid:
             return "1740 - 175F";
         case NamedBlock.CJKCompatibility:
             return "3300 - 33FF";
         case NamedBlock.CJKCompatibilityForms:
             return "FE30 - FE4F";
         case NamedBlock.CJKCompatibilityIdeographs:
             return "F900 - FAFF";
         case NamedBlock.CJKRadicalsSupplement:
             return "2E80 - 2EFF";
         case NamedBlock.CJKSymbolsAndPunctuation:
             return "3000 - 303F";
         case NamedBlock.CJKUnifiedIdeographs:
             return "4E00 - 9FFF";
         case NamedBlock.CJKUnifiedIdeographsExtensionA:
             return "3400 - 4DBF";
         case NamedBlock.CombiningDiacriticalMarks:
             return "0300 - 036F";
         case NamedBlock.CombiningDiacriticalMarksForSymbols:
             return "20D0 - 20FF";
         case NamedBlock.CombiningHalfMarks:
             return "FE20 - FE2F";
         case NamedBlock.CombiningMarksForSymbols:
             return "20D0 - 20FF";
         case NamedBlock.ControlPictures:
             return "2400 - 243F";
         case NamedBlock.CurrencySymbols:
             return "20A0 - 20CF";
         case NamedBlock.Cyrillic:
             return "0400 - 04FF";
         case NamedBlock.CyrillicSupplement:
             return "0500 - 052F";
         case NamedBlock.Devanagari:
             return "0900 - 097F";
         case NamedBlock.Dingbats:
             return "2700 - 27BF";
         case NamedBlock.EnclosedAlphanumerics:
             return "2460 - 24FF";
         case NamedBlock.EnclosedCJKLettersAndMonths:
             return "3200 - 32FF";
         case NamedBlock.Ethiopic:
             return "1200 - 137F";
         case NamedBlock.GeneralPunctuation:
             return "2000 - 206F";
         case NamedBlock.GeometricShapes:
             return "25A0 - 25FF";
         case NamedBlock.Georgian:
             return "10A0 - 10FF";
         case NamedBlock.Greek:
             return "0370 - 03FF";
         case NamedBlock.GreekAndCoptic:
             return "0370 - 03FF";
         case NamedBlock.GreekExtended:
             return "1F00 - 1FFF";
         case NamedBlock.Gujarati:
             return "0A80 - 0AFF";
         case NamedBlock.Gurmukhi:
             return "0A00 - 0A7F";
         case NamedBlock.HalfWidthAndFullWidthForms:
             return "FF00 - FFEF";
         case NamedBlock.HangulCompatibilityJamo:
             return "3130 - 318F";
         case NamedBlock.HangulJamo:
             return "1100 - 11FF";
         case NamedBlock.HangulSyllables:
             return "AC00 - D7AF";
         case NamedBlock.Hanunoo:
             return "1720 - 173F";
         case NamedBlock.Hebrew:
             return "0590 - 05FF";
         case NamedBlock.HighPrivateUseSurrogates:
             return "DB80 - DBFF";
         case NamedBlock.HighSurrogates:
             return "D800 - DB7F";
         case NamedBlock.Hiragana:
             return "3040 - 309F";
         case NamedBlock.Cherokee:
             return "13A0 - 13FF";
         case NamedBlock.IdeographicDescriptionCharacters:
             return "2FF0 - 2FFF";
         case NamedBlock.IPAExtensions:
             return "0250 - 02AF";
         case NamedBlock.Kanbun:
             return "3190 - 319F";
         case NamedBlock.KangxiRadicals:
             return "2F00 - 2FDF";
         case NamedBlock.Kannada:
             return "0C80 - 0CFF";
         case NamedBlock.Katakana:
             return "30A0 - 30FF";
         case NamedBlock.KatakanaPhoneticExtensions:
             return "31F0 - 31FF";
         case NamedBlock.Khmer:
             return "1780 - 17FF";
         case NamedBlock.KhmerSymbols:
             return "19E0 - 19FF";
         case NamedBlock.Lao:
             return "0E80 - 0EFF";
         case NamedBlock.Latin1Supplement:
             return "0080 - 00FF";
         case NamedBlock.LatinExtendedA:
             return "0100 - 017F";
         case NamedBlock.LatinExtendedAdditional:
             return "1E00 - 1EFF";
         case NamedBlock.LatinExtendedB:
             return "0180 - 024F";
         case NamedBlock.LetterLikeSymbols:
             return "2100 - 214F";
         case NamedBlock.Limbu:
             return "1900 - 194F";
         case NamedBlock.LowSurrogates:
             return "DC00 - DFFF";
         case NamedBlock.Malayalam:
             return "0D00 - 0D7F";
         case NamedBlock.MathematicalOperators:
             return "2200 - 22FF";
         case NamedBlock.MiscellaneousMathematicalSymbolsA:
             return "27C0 - 27EF";
         case NamedBlock.MiscellaneousMathematicalSymbolsB:
             return "2980 - 29FF";
         case NamedBlock.MiscellaneousSymbols:
             return "2600 - 26FF";
         case NamedBlock.MiscellaneousSymbolsAndArrows:
             return "2B00 - 2BFF";
         case NamedBlock.MiscellaneousTechnical:
             return "2300 - 23FF";
         case NamedBlock.Mongolian:
             return "1800 - 18AF";
         case NamedBlock.Myanmar:
             return "1000 - 109F";
         case NamedBlock.NumberForms:
             return "2150 - 218F";
         case NamedBlock.Ogham:
             return "1680 - 169F";
         case NamedBlock.OpticalCharacterRecognition:
             return "2440 - 245F";
         case NamedBlock.Oriya:
             return "0B00 - 0B7F";
         case NamedBlock.PhoneticExtensions:
             return "1D00 - 1D7F";
         case NamedBlock.PrivateUse:
             return "E000 - F8FF";
         case NamedBlock.PrivateUseArea:
             return "E000 - F8FF";
         case NamedBlock.Runic:
             return "16A0 - 16FF";
         case NamedBlock.Sinhala:
             return "0D80 - 0DFF";
         case NamedBlock.SmallFormVariants:
             return "FE50 - FE6F";
         case NamedBlock.SpacingModifierLetters:
             return "02B0 - 02FF";
         case NamedBlock.Specials:
             return "FFF0 - FFFF";
         case NamedBlock.SuperscriptsAndSubscripts:
             return "2070 - 209F";
         case NamedBlock.SupplementalArrowsA:
             return "27F0 - 27FF";
         case NamedBlock.SupplementalArrowsB:
             return "2900 - 297F";
         case NamedBlock.SupplementalMathematicalOperators:
             return "2A00 - 2AFF";
         case NamedBlock.Syriac:
             return "0700 - 074F";
         case NamedBlock.Tagalog:
             return "1700 - 171F";
         case NamedBlock.Tagbanwa:
             return "1760 - 177F";
         case NamedBlock.TaiLe:
             return "1950 - 197F";
         case NamedBlock.Tamil:
             return "0B80 - 0BFF";
         case NamedBlock.Telugu:
             return "0C00 - 0C7F";
         case NamedBlock.Thaana:
             return "0780 - 07BF";
         case NamedBlock.Thai:
             return "0E00 - 0E7F";
         case NamedBlock.Tibetan:
             return "0F00 - 0FFF";
         case NamedBlock.UnifiedCanadianAboriginalSyllabics:
             return "1400 - 167F";
         case NamedBlock.VariationSelectors:
             return "FE00 - FE0F";
         case NamedBlock.YijingHexagramSymbols:
             return "4DC0 - 4DFF";
         case NamedBlock.YiRadicals:
             return "A490 - A4CF";
         case NamedBlock.YiSyllables:
             return "A000 - A48F";
         default:
             Debug.Assert(false, block.ToString());
             return "";
     }
 }
示例#8
0
 /// <summary>
 /// Appends a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Append(NamedBlock block) => Append(Chars.Character(block));
 internal static CharGrouping Character(NamedBlock block, bool negative)
 {
     return(new CharGrouping.NamedBlockCharGrouping(block, negative));
 }
示例#10
0
 /// <summary>
 /// Returns a pattern that matches a character that is not from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping Not(NamedBlock block)
 {
     return(Character(block, true));
 }
示例#11
0
 /// <summary>
 /// Appends a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Character(NamedBlock block)
 {
     return Append(Chars.Character(block));
 }
示例#12
0
 /// <summary>
 /// Appends a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Append(NamedBlock block) => Append(Chars.Character(block));
示例#13
0
 /// <summary>
 /// Appends a pattern that matches a character that is not from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Not(NamedBlock block) => Append(Chars.Not(block));
示例#14
0
 /// <summary>
 /// Appends a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Character(NamedBlock block)
 {
     return(Append(Chars.Character(block)));
 }
示例#15
0
        internal void AppendNamedBlock(NamedBlock block, bool negative)
        {
            AppendBackslash(negative ? 'P' : 'p');
            AppendDirect('{');
            AppendDirect(RegexUtility.BlockDesignations[(int)block]);
            AppendDirect('}');

            if (_comment && _charGroupLevel == 0)
            {
                _lines.Add(negative ? SyntaxKind.NotNamedBlock : SyntaxKind.NamedBlock);
            }
        }
示例#16
0
 internal NamedBlockCharPattern(NamedBlock block, bool negative)
 {
     _block = block;
     _negative = negative;
 }
示例#17
0
 /// <summary>
 /// Appends a pattern that matches a character from a specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 public void AppendCharGroup(NamedBlock block)
 {
     AppendCharGroup(block, false);
 }
示例#18
0
 /// <summary>
 /// Returns a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping Character(NamedBlock block)
 {
     return(Character(block, false));
 }
示例#19
0
 /// <summary>
 /// Appends a pattern that matches a character that is not from a specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 public void AppendNegativeCharGroup(NamedBlock block)
 {
     AppendCharGroup(block, true);
 }
示例#20
0
 /// <summary>
 /// Returns a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping NamedBlock(NamedBlock block)
 {
     return(Character(block));
 }
示例#21
0
 internal void AppendCharGroup(NamedBlock block, bool negative)
 {
     AppendCharGroupStart();
     AppendNamedBlock(block, negative);
     AppendCharGroupEnd();
 }
示例#22
0
 /// <summary>
 /// Appends a pattern that matches a character that is not from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public CharGrouping Not(NamedBlock block) => Append(Chars.Not(block));
示例#23
0
 /// <summary>
 /// Appends a pattern that matches a character from a specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public void AppendNamedBlock(NamedBlock block)
 {
     AppendNamedBlock(block, false);
 }
示例#24
0
 public NamedBlockCharGrouping(NamedBlock block, bool negative)
 {
     _block = block;
     _negative = negative;
 }
示例#25
0
 /// <summary>
 /// Appends a pattern that matches a character that is not from a specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public void AppendNotNamedBlock(NamedBlock block)
 {
     AppendNamedBlock(block, true);
 }
示例#26
0
 /// <summary>
 /// Gets a designation of the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static string GetBlockDesignation(NamedBlock block) => BlockDesignations[(int)block];
示例#27
0
        internal void AppendNamedBlock(NamedBlock block, bool negative)
        {
            AppendBackslash(negative ? 'P' : 'p');
            AppendDirect('{');
            AppendDirect(RegexUtility.BlockDesignations[(int)block]);
            AppendDirect('}');

            if (_fBuilder && _charGroupLevel == 0)
                _builder.AddInfo(negative ? SyntaxKind.NotNamedBlock : SyntaxKind.NamedBlock);
        }
示例#28
0
 /// <summary>
 /// Returns a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping Character(NamedBlock block)
 {
     return Character(block, false);
 }
示例#29
0
 public NamedBlockCharGrouping(NamedBlock block, bool negative)
 {
     _block   = block;
     Negative = negative;
 }
示例#30
0
 /// <summary>
 /// Returns a pattern that matches a character from the specified Unicode block.
 /// </summary>
 /// <param name="block">An enumerated constant that identifies Unicode block.</param>
 /// <returns></returns>
 public static CharGrouping NamedBlock(NamedBlock block)
 {
     return Character(block);
 }
示例#31
0
 internal NamedBlockCharPattern(NamedBlock block, bool negative)
 {
     _block    = block;
     _negative = negative;
 }