Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReduceConcatenationWithAdjacentStrings()

void System.Text.RegularExpressions.RegexNode.ReduceConcatenationWithAdjacentStrings ( )
inlineprivate

Definition at line 673 of file RegexNode.cs.

674 {
675 bool flag = false;
676 RegexOptions regexOptions = RegexOptions.None;
678 int num = 0;
679 int num2 = 0;
680 while (num < list.Count)
681 {
682 RegexNode regexNode = list[num];
683 if (num2 < num)
684 {
686 }
687 if (regexNode.Type == 25 && (regexNode.Options & RegexOptions.RightToLeft) == (Options & RegexOptions.RightToLeft))
688 {
689 if (regexNode.Children is List<RegexNode> list2)
690 {
691 for (int i = 0; i < list2.Count; i++)
692 {
693 list2[i].Next = this;
694 }
695 list.InsertRange(num + 1, list2);
696 }
697 else
698 {
700 regexNode2.Next = this;
701 list.Insert(num + 1, regexNode2);
702 }
703 num2--;
704 }
705 else if (regexNode.Type == 12 || regexNode.Type == 9)
706 {
707 RegexOptions regexOptions2 = regexNode.Options & (RegexOptions.IgnoreCase | RegexOptions.RightToLeft);
708 if (!flag || regexOptions != regexOptions2)
709 {
710 flag = true;
712 }
713 else
714 {
716 if (regexNode3.Type == 9)
717 {
718 regexNode3.Type = 12;
719 regexNode3.Str = regexNode3.Ch.ToString();
720 }
721 if ((regexOptions2 & RegexOptions.RightToLeft) == 0)
722 {
723 regexNode3.Str = ((regexNode.Type == 9) ? $"{regexNode3.Str}{regexNode.Ch}" : (regexNode3.Str + regexNode.Str));
724 }
725 else
726 {
727 regexNode3.Str = ((regexNode.Type == 9) ? $"{regexNode.Ch}{regexNode3.Str}" : (regexNode.Str + regexNode3.Str));
728 }
729 }
730 }
731 else if (regexNode.Type == 23)
732 {
733 num2--;
734 }
735 else
736 {
737 flag = false;
738 }
739 num++;
740 num2++;
741 }
742 if (num2 < num)
743 {
744 list.RemoveRange(num2, num - num2);
745 }
746 }
RegexNode(int type, RegexOptions options)
Definition RegexNode.cs:23

References System.Text.RegularExpressions.RegexNode.RegexNode(), System.Text.RegularExpressions.RegexNode.Children, System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Text.RegularExpressions.i, System.list, and System.Text.RegularExpressions.RegexNode.Options.

Referenced by System.Text.RegularExpressions.RegexNode.ReduceConcatenation().