Beispiel #1
0
        protected virtual void ReadSuffix(ISourceStream source, CompoundTokenDetails details)
        {
            if (!_suffixesFirsts.Contains(source.PreviewChar))
            {
                return;
            }

            var comparisonType = CaseSensitivePrefixesSuffixes ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase;

            foreach (var sfx in Suffixes)
            {
                //Suffixes are usually case insensitive, even if language is case-sensitive. So we cannot use source.MatchSymbol here,
                // we need case-specific comparison
                if (string.Compare(source.Text, source.PreviewPosition, sfx, 0, sfx.Length, comparisonType) != 0)
                {
                    continue;
                }
                //We found suffix
                details.Suffix          = sfx;
                source.PreviewPosition += sfx.Length;
                //Set TypeCode from suffix
                if (!string.IsNullOrEmpty(details.Suffix) && SuffixTypeCodes.TryGetValue(details.Suffix, out TypeCode[] codes))
Beispiel #2
0
 public void AddSuffix(string suffix, params TypeCode[] typeCodes)
 {
     SuffixTypeCodes.Add(suffix, typeCodes);
     Suffixes.Add(suffix);
 }
 public void AddSuffixCodes(string suffix, params TypeCode[] codes)
 {
     SuffixTypeCodes.Add(suffix, codes);
     Suffixes.Add(suffix);
 }