Ejemplo n.º 1
0
        private static VarLikeConstructUse /*!*/ CreatePropertyVariable(Position pos, CompoundVarUse /*!*/ property, FcnParam parameters)
        {
            if (parameters != null)
            {
                DirectVarUse        direct_use;
                IndirectVarUse      indirect_use;
                VarLikeConstructUse fcnCall;

                if ((direct_use = property as DirectVarUse) != null)
                {
                    QualifiedName method_name = new QualifiedName(new Name(direct_use.VarName.Value), Name.EmptyNames);
                    fcnCall = new DirectFcnCall(pos, method_name, null, property.Position, (List <ActualParam>)parameters.Item2, (List <TypeRef>)parameters.Item1);
                }
                else if ((indirect_use = property as IndirectVarUse) != null)
                {
                    fcnCall = new IndirectFcnCall(pos, indirect_use.VarNameEx, (List <ActualParam>)parameters.Item2, (List <TypeRef>)parameters.Item1);
                }
                else
                {
                    fcnCall = new IndirectFcnCall(pos, (ItemUse)property, (List <ActualParam>)parameters.Item2, (List <TypeRef>)parameters.Item1);
                }

                // wrap fcnCall into ItemUse
                fcnCall = CreateFcnArrayDereference(pos, fcnCall, parameters.Item3);

                return(fcnCall);
            }
            else
            {
                return(property);
            }
        }
Ejemplo n.º 2
0
 private VariableUse CreateStaticFieldUse(Position position, GenericQualifiedName /*!*/ className, Position classNamePosition, CompoundVarUse /*!*/ field)
 {
     return(CreateStaticFieldUse(position, DirectTypeRef.FromGenericQualifiedName(classNamePosition, className), field));
 }
Ejemplo n.º 3
0
        private VariableUse CreateStaticFieldUse(Position position, TypeRef /*!*/ typeRef, CompoundVarUse /*!*/ field)
        {
            DirectVarUse   dvu;
            IndirectVarUse ivu;

            if ((dvu = field as DirectVarUse) != null)
            {
                return(new DirectStFldUse(position, typeRef, dvu.VarName, field.Position));
            }
            else if ((ivu = field as IndirectVarUse) != null)
            {
                return(new IndirectStFldUse(position, typeRef, ivu.VarNameEx));
            }
            else
            {
                ItemUse iu = (ItemUse)field;
                iu.Array = CreateStaticFieldUse(iu.Array.Position, typeRef, (CompoundVarUse)iu.Array);
                return(iu);
            }
        }
Ejemplo n.º 4
0
 private VariableUse CreateStaticFieldUse(Position position, CompoundVarUse /*!*/ className, CompoundVarUse /*!*/ field)
 {
     return(CreateStaticFieldUse(position, new IndirectTypeRef(position, className, TypeRef.EmptyList), field));
 }