public void Inline(InlineProduction prod) { int position = prod.Position; int inlineLength = prod.Pattern.Length; int[] pattern = Pattern; Array.Resize(ref pattern, pattern.Length + inlineLength); Array.Copy(pattern, position + 1, pattern, position + inlineLength, pattern.Length - position - 1); Array.Copy(prod.Pattern, 0, pattern, position, inlineLength); this.Pattern = pattern; if (Inlines == null) { Inlines = new List<InlineProduction>(); } Inlines.Add(prod); }
public void Inline(InlineProduction prod) { int position = prod.Position; int inlineLength = prod.Pattern.Length; int[] pattern = Pattern; Array.Resize(ref pattern, pattern.Length + inlineLength); Array.Copy(pattern, position + 1, pattern, position + inlineLength, pattern.Length - position - 1); Array.Copy(prod.Pattern, 0, pattern, position, inlineLength); this.Pattern = pattern; if (Inlines == null) { Inlines = new List <InlineProduction>(); } Inlines.Add(prod); }