Example #1
0
            private bool TryGetOption(out GroupRegexOptions option)
            {
                char nextChar = regex[index];

                switch (nextChar)
                {
                case 'i':
                    option = GroupRegexOptions.IgnoreCase;
                    return(true);

                case 'm':
                    option = GroupRegexOptions.Multiline;
                    return(true);

                case 'n':
                    option = GroupRegexOptions.ExplicitCapture;
                    return(true);

                case 's':
                    option = GroupRegexOptions.Singleline;
                    return(true);

                case 'x':
                    option = GroupRegexOptions.IgnorePatternWhitespace;
                    return(true);

                default:
                    option = GroupRegexOptions.None;
                    return(false);
                }
            }
Example #2
0
        /// <summary>
        /// Creates inline options that can enable or disable options for the remainder of the current expression.
        /// </summary>
        /// <param name="enabled">The options to enable.</param>
        /// <param name="disabled">The options to disable.</param>
        /// <returns>The options group.</returns>
        public static IInlineOptions For(GroupRegexOptions enabled, GroupRegexOptions disabled)
        {
            Group.ValidateRegexOptions(nameof(enabled), enabled);
            Group.ValidateRegexOptions(nameof(disabled), disabled);
            var options = new InlineOptions()
            {
                EnabledOptions = enabled, DisabledOptions = disabled
            };

            return(options);
        }
Example #3
0
        internal static void ValidateRegexOptions(string parameterName, GroupRegexOptions options)
        {
            if ((options & GroupRegexOptions.Multiline) == GroupRegexOptions.Multiline && (options & GroupRegexOptions.Singleline) == GroupRegexOptions.Singleline)
            {
                throw new ArgumentException(Resources.SingleAndMultilineMode, parameterName);
            }
            var allOptions = GroupRegexOptions.IgnoreCase | GroupRegexOptions.Multiline | GroupRegexOptions.ExplicitCapture | GroupRegexOptions.Singleline | GroupRegexOptions.IgnorePatternWhitespace;

            options &= ~allOptions;
            if (options != 0)
            {
                throw new ArgumentException(Resources.InvalidGroupOptions, parameterName);
            }
        }
Example #4
0
        /// <summary>
        /// Creates a group that can enable or disable options for its subexpressions.
        /// </summary>
        /// <param name="enabled">The options to enable.</param>
        /// <param name="disabled">The options to disable.</param>
        /// <returns>The options group.</returns>
        public static IOptionsGroup From(GroupRegexOptions enabled, GroupRegexOptions disabled, IEnumerable <IExpression> members)
        {
            if (members == null)
            {
                throw new ArgumentNullException(nameof(members));
            }
            ValidateRegexOptions(nameof(enabled), enabled);
            ValidateRegexOptions(nameof(disabled), disabled);
            var group = new OptionsGroup()
            {
                EnabledOptions = enabled, DisabledOptions = disabled
            };

            foreach (var member in members)
            {
                group.Add(member);
            }
            return(group);
        }
 public EncodingExpressionVisitor(GroupRegexOptions options)
 {
     PushState(ExpressionContext.Group);
     Options = options;
 }
Example #6
0
 /// <summary>
 /// Creates a group that can enable or disable options for its subexpressions.
 /// </summary>
 /// <param name="enabled">The options to enable.</param>
 /// <param name="disabled">The options to disable.</param>
 /// <returns>The options group.</returns>
 public static IOptionsGroup Of(GroupRegexOptions enabled, GroupRegexOptions disabled, params IExpression[] members)
 {
     return(From(enabled, disabled, members));
 }