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