Pihrtsoft.Text.RegularExpressions.Linq.PatternBuilder.AppendIfGroupInternal C# (CSharp) Method

AppendIfGroupInternal() private method

private AppendIfGroupInternal ( string groupName, object trueContent, object falseContent, bool checkGroupName ) : void
groupName string
trueContent object
falseContent object
checkGroupName bool
return void
        internal void AppendIfGroupInternal(string groupName, object trueContent, object falseContent, bool checkGroupName)
        {
            if (checkGroupName)
                RegexUtility.CheckGroupName(groupName);

            if (trueContent == null)
                throw new ArgumentNullException(nameof(trueContent));

            AppendGroupStart(false);
            AppendDirect('(');
            AppendDirect(groupName);
            AppendGroupEnd(false);

            if (_fBuilder)
                _builder.AddInfo(SyntaxKind.IfGroup);

            RegexOptions currentOptions = CurrentOptions;

            _indentLevel++;

            if (falseContent == null)
            {
                Append(trueContent, GroupMode.None);
            }
            else
            {
                Append(trueContent);
                AppendOr(falseContent);
            }

            AppendGroupEnd();

            CurrentOptions = currentOptions;
        }

Usage Example

Example #1
0
 internal override void AppendTo(PatternBuilder builder)
 {
     builder.AppendIfGroupInternal(GroupName, _trueContent, _falseContent, false);
 }