示例#1
0
        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>()
            {
            };
        }
示例#2
0
 public void Need(int index, PostParseVariable right)
 {
     Items[right.Index].Add(right);
 }