示例#1
0
 internal override void RemoveChild(Node child)
 {
     if (_token_ == child)
     {
         _token_ = null;
         return;
     }
     if (_base_ == child)
     {
         _base_ = null;
         return;
     }
     if (_generic_types_.Contains(child))
     {
         _generic_types_.Remove(child);
         return;
     }
 }
示例#2
0
 public AGenericType(
         TLt _token_,
         PType _base_,
         IList _generic_types_
 )
 {
     SetToken(_token_);
     SetBase(_base_);
     this._generic_types_ = new TypedList(new GenericTypes_Cast(this));
     this._generic_types_.Clear();
     this._generic_types_.AddAll(_generic_types_);
 }
示例#3
0
        public void SetToken(TLt node)
        {
            if (_token_ != null)
            {
                _token_.Parent(null);
            }

            if (node != null)
            {
                if (node.Parent() != null)
                {
                    node.Parent().RemoveChild(node);
                }

                node.Parent(this);
            }

            _token_ = node;
        }
示例#4
0
 public AShadySAssignmentExp(
         TConst _const_,
         IList _pre_pointers_,
         PLvalue _lvalue_,
         TLt _generic_token_,
         IList _generic_types_,
         IList _post_pointers_,
         IList _local_decl_right_
 )
 {
     SetConst(_const_);
     this._pre_pointers_ = new TypedList(new PrePointers_Cast(this));
     this._pre_pointers_.Clear();
     this._pre_pointers_.AddAll(_pre_pointers_);
     SetLvalue(_lvalue_);
     SetGenericToken(_generic_token_);
     this._generic_types_ = new TypedList(new GenericTypes_Cast(this));
     this._generic_types_.Clear();
     this._generic_types_.AddAll(_generic_types_);
     this._post_pointers_ = new TypedList(new PostPointers_Cast(this));
     this._post_pointers_.Clear();
     this._post_pointers_.AddAll(_post_pointers_);
     this._local_decl_right_ = new TypedList(new LocalDeclRight_Cast(this));
     this._local_decl_right_.Clear();
     this._local_decl_right_.AddAll(_local_decl_right_);
 }
示例#5
0
 internal override void RemoveChild(Node child)
 {
     if (_const_ == child)
     {
         _const_ = null;
         return;
     }
     if (_pre_pointers_.Contains(child))
     {
         _pre_pointers_.Remove(child);
         return;
     }
     if (_lvalue_ == child)
     {
         _lvalue_ = null;
         return;
     }
     if (_generic_token_ == child)
     {
         _generic_token_ = null;
         return;
     }
     if (_generic_types_.Contains(child))
     {
         _generic_types_.Remove(child);
         return;
     }
     if (_post_pointers_.Contains(child))
     {
         _post_pointers_.Remove(child);
         return;
     }
     if (_local_decl_right_.Contains(child))
     {
         _local_decl_right_.Remove(child);
         return;
     }
 }
示例#6
0
 internal override void RemoveChild(Node child)
 {
     if (_token_ == child)
     {
         _token_ = null;
         return;
     }
 }
示例#7
0
 public ALtBinop(
         TLt _token_
 )
 {
     SetToken(_token_);
 }
 public virtual void CaseTLt(TLt node)
 {
     DefaultCase(node);
 }
示例#9
0
 private PType LvalueToType(PLvalue lvalue, IList dynamicOpList, TLt genericToken, IList genericTypes)
 {
     PType type = LvalueToType(lvalue);
     if (genericToken != null)
     {
         type = new AGenericType(genericToken, type, new ArrayList());
         while (genericTypes.Count > 0)
         {
             ((AGenericType) type).GetGenericTypes().Add(genericTypes[0]);
         }
     }
     foreach (PShadyDynamicOps op in dynamicOpList)
     {
         if (op is APointerShadyDynamicOps)
         {
             APointerShadyDynamicOps aop = (APointerShadyDynamicOps) op;
             type = new APointerType(aop.GetToken(), type);
         }
         else if (op is AArrayShadyDynamicOps)
         {
             AArrayShadyDynamicOps aop = (AArrayShadyDynamicOps)op;
             if (aop.GetExp() == null)
                 type = new ADynamicArrayType(aop.GetToken(), type);
             else
                 type = new AArrayTempType(aop.GetToken(), type, aop.GetExp(), null);
         }
     }
     return type;
 }
示例#10
0
 public override void CaseTLt(TLt node)
 {
     index = 76;
 }