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); } }
/// <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); }
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); } }
/// <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; }
/// <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)); }