Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory
namespace Microsoft.CSharp.RuntimeBinder.Semantics
{
internal static class ExprFactory
{
public static ExprCall CreateCall(EXPRFLAG flags, CType type, Expr arguments, ExprMemberGroup memberGroup, MethWithInst method);
public static ExprField CreateField(CType type, Expr optionalObject, FieldWithType field);
public static ExprArrayInit CreateArrayInit(CType type, Expr arguments, Expr argumentDimensions, int[] dimSizes);
public static ExprProperty CreateProperty(CType type, Expr optionalObjectThrough, Expr arguments, ExprMemberGroup memberGroup, PropWithType property, MethWithType setMethod);
public static ExprMemberGroup CreateMemGroup(EXPRFLAG flags, Name name, TypeArray typeArgs, SYMKIND symKind, CType parentType, Expr obj, CMemberLookupResults memberLookupResults);
public static ExprMemberGroup CreateMemGroup(Expr obj, MethPropWithInst method);
public static ExprUserDefinedConversion CreateUserDefinedConversion(Expr arg, Expr call, MethWithInst method);
public static ExprCast CreateCast(CType type, Expr argument);
public static ExprCast CreateCast(EXPRFLAG flags, CType type, Expr argument);
public static ExprLocal CreateLocal(LocalVariableSymbol local);
public static ExprBoundLambda CreateAnonymousMethod(AggregateType delegateType, Scope argumentScope, Expr expression);
public static ExprMethodInfo CreateMethodInfo(MethPropWithInst mwi);
public static ExprMethodInfo CreateMethodInfo(MethodSymbol method, AggregateType methodType, TypeArray methodParameters);
public static ExprPropertyInfo CreatePropertyInfo(PropertySymbol prop, AggregateType propertyType);
public static ExprFieldInfo CreateFieldInfo(FieldSymbol field, AggregateType fieldType);
public static ExprTypeOf CreateTypeOf(CType sourceType);
public static ExprUserLogicalOp CreateUserLogOp(CType type, Expr trueFalseCall, ExprCall operatorCall);
public static ExprConcat CreateConcat(Expr first, Expr second);
public static ExprConstant CreateStringConstant(string str);
public static ExprMultiGet CreateMultiGet(EXPRFLAG flags, CType type, ExprMulti multi);
public static ExprMulti CreateMulti(EXPRFLAG flags, CType type, Expr left, Expr op);
public static Expr CreateZeroInit(CType type);
public static ExprConstant CreateConstant(CType type, ConstVal constVal);
public static ExprConstant CreateIntegerConstant(int x);
public static ExprConstant CreateBoolConstant(bool b);
public static ExprArrayIndex CreateArrayIndex(CType type, Expr array, Expr index);
public static ExprBinOp CreateBinop(ExpressionKind exprKind, CType type, Expr left, Expr right);
public static ExprUnaryOp CreateUnaryOp(ExpressionKind exprKind, CType type, Expr operand);
public static ExprOperator CreateOperator(ExpressionKind exprKind, CType type, Expr arg1, Expr arg2);
public static ExprBinOp CreateUserDefinedBinop(ExpressionKind exprKind, CType type, Expr left, Expr right, Expr call, MethPropWithInst userMethod);
public static ExprUnaryOp CreateUserDefinedUnaryOperator(ExpressionKind exprKind, CType type, Expr operand, ExprCall call, MethPropWithInst userMethod);
public static ExprUnaryOp CreateNeg(EXPRFLAG flags, Expr operand);
public static ExprBinOp CreateSequence(Expr first, Expr second);
public static ExprAssignment CreateAssignment(Expr left, Expr right);
public static ExprNamedArgumentSpecification CreateNamedArgumentSpecification(Name name, Expr value);
public static ExprWrap CreateWrap(Expr expression);
public static ExprBinOp CreateSave(ExprWrap wrap);
public static ExprConstant CreateNull();
public static void AppendItemToList(Expr newItem, ref Expr first, ref Expr last);
public static ExprList CreateList(Expr op1, Expr op2);
public static ExprList CreateList(Expr op1, Expr op2, Expr op3);
public static ExprList CreateList(Expr op1, Expr op2, Expr op3, Expr op4);
public static ExprClass CreateClass(CType type);
}
}