<PackageReference Include="Microsoft.CSharp" Version="4.6.0" />

Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory

static class 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); } }