internal IntermediateNode(Item item, int startPosition, int endPosition) : base(startPosition, endPosition) { Item = item; // these two are used just for figuring out equality _production = item.Production; _currentPosition = item.CurrentPosition; }