public void Resolve(int index, PostParseVariable left) { Tuple <int, List <PostParseVariable> > item; if (Needs.TryGetValue(index, out item)) { Needs.Remove(index); left.Type = VariableType.Variable; left.Index = item.Item1; foreach (PostParseVariable postParseItem in item.Item2) { postParseItem.Type = VariableType.Variable; postParseItem.Index = item.Item1; } foreach (var postParseVariable in Items[index]) { postParseVariable.Type = VariableType.Variable; postParseVariable.Index = item.Item1; } } else if (!Items[left.Index].Any()) { left.Destroy = true; } Items[left.Index] = new List <PostParseVariable>() { }; }
public void Need(int index, PostParseVariable right) { Items[right.Index].Add(right); }