コード例 #1
0
 public MethodCallExpression(string name, Expression expression)
 {
     this.name = name;
     this.caller = expression;
     parameters = new List<Expression>();
     genericArgumentTypes = new List<CsType>();
 }
コード例 #2
0
        public static ForeachStatement Foreach(this BlockStatement blockStatement, string itemName, Expression expression,
                                           Action<BlockStatement> block)
        {
            var nestedBlockStatement = new BlockStatement();
            block(nestedBlockStatement);

            var foreachStatement = new ForeachStatement(new NameElement(itemName), expression, nestedBlockStatement);
            blockStatement.AddStatement(foreachStatement);
            return foreachStatement;
        }
コード例 #3
0
        public static IfStatement If(this BlockStatement blockStatement, Expression expression,
                                     Action<BlockStatement> block)
        {
            var nestedBlockStatement = new BlockStatement();
            block(nestedBlockStatement);

            var ifStatement = new IfStatement(expression, nestedBlockStatement);
            blockStatement.AddStatement(ifStatement);
            return ifStatement;
        }
コード例 #4
0
ファイル: NewExpression.cs プロジェクト: jorgehmv/CsBuilder
 public void AddParam(Expression param)
 {
     parameters.Add(param);
 }
コード例 #5
0
 public LambdaExpression(Expression expression)
 {
     ParamName = DefaultParamName;
     this.expression = expression;
 }
コード例 #6
0
ファイル: Comparison.cs プロジェクト: jorgehmv/CsBuilder
 public InequalityComparison(Expression left, Expression right)
     : base(left, ComparisonOperator.Inequality, right)
 {
 }
コード例 #7
0
ファイル: Comparison.cs プロジェクト: jorgehmv/CsBuilder
 public GreaterThanComparison(Expression left, Expression right)
     : base(left, ComparisonOperator.GreaterThan, right)
 {
 }
コード例 #8
0
 public static FieldStatement Init(this FieldStatement fieldStatement, Expression expression)
 {
     fieldStatement.InitValue = expression;
     return fieldStatement;
 }
コード例 #9
0
ファイル: Arithmetic.cs プロジェクト: jorgehmv/CsBuilder
 public MultiplyOperation(Expression left, Expression right)
 {
     this.left = left;
     this.right = right;
 }
コード例 #10
0
 public ForeachStatement(NameElement itemName, Expression collection, BlockStatement body)
 {
     this.itemName = itemName;
     this.collection=collection;
     this.body = body;
 }
コード例 #11
0
ファイル: Cs.cs プロジェクト: jorgehmv/CsBuilder
 public static LambdaExpression Lambda(Expression expression)
 {
     return new LambdaExpression(expression);
 }
コード例 #12
0
ファイル: Cs.cs プロジェクト: jorgehmv/CsBuilder
 public static AssignmentExpression Assign(ReferenceExpression leftSide, Expression rightSide)
 {
     return new AssignmentExpression(leftSide, rightSide);
 }
コード例 #13
0
ファイル: Cs.cs プロジェクト: jorgehmv/CsBuilder
 public static AssignmentExpression Assign(string leftSide, Expression rightSide)
 {
     return Assign(Cs.Var(leftSide), rightSide);
 }
コード例 #14
0
        public static WhileStatement While(this BlockStatement blockStatement, Expression expression,
                                           Action<BlockStatement> block)
        {
            var nestedBlockStatement = new BlockStatement();
            block(nestedBlockStatement);

            var whileStatement = new WhileStatement(expression, nestedBlockStatement);
            blockStatement.AddStatement(whileStatement);
            return whileStatement;
        }
コード例 #15
0
 public static ForStatement To(this ForStatement forStatement, Expression toValue)
 {
     forStatement.Condition = forStatement.Variable <= toValue;
     return forStatement;
 }
コード例 #16
0
ファイル: Arithmetic.cs プロジェクト: jorgehmv/CsBuilder
 public DivideOperation(Expression left, Expression right)
 {
     this.left = left;
     this.right = right;
 }
コード例 #17
0
ファイル: Arithmetic.cs プロジェクト: jorgehmv/CsBuilder
 public MinusOperation(Expression left, Expression right)
 {
     this.left = left;
     this.right = right;
 }
コード例 #18
0
 public ReferenceExpression(Expression owner, string name)
 {
     this.owner = owner;
     this.name = new NameElement(name);
 }
コード例 #19
0
 public CoalesceExpression(Expression leftExpression, Expression rightExpression)
 {
     this.leftExpression = leftExpression;
     this.rightExpression = rightExpression;
 }
コード例 #20
0
 public ReferenceExpression(Expression owner, ReferenceExpression reference)
 {
     this.owner = owner;
     this.reference = reference;
 }
コード例 #21
0
ファイル: Comparison.cs プロジェクト: jorgehmv/CsBuilder
 protected Comparison(Expression left, ComparisonOperator comparisonOperator, Expression right)
 {
     this.left = !ReferenceEquals(left, null) ? left : Null;
     this.comparisonOperator = comparisonOperator;
     this.right = !ReferenceEquals(right, null) ? right : Null;
 }
コード例 #22
0
ファイル: CastExpression.cs プロジェクト: jorgehmv/CsBuilder
 public CastExpression(Expression castedExpression, CsType type)
 {
     this.castedExpression = castedExpression;
     this.type = type;
 }
コード例 #23
0
ファイル: Comparison.cs プロジェクト: jorgehmv/CsBuilder
 public GreaterThanOrEqualsToComparison(Expression left, Expression right)
     : base(left, ComparisonOperator.GreaterThanOrEqualsTo, right)
 {
 }
コード例 #24
0
 public AssignmentExpression(Expression leftSide, Expression rightSide)
 {
     LeftSide = leftSide;
     RightSide = rightSide;
 }
コード例 #25
0
ファイル: Comparison.cs プロジェクト: jorgehmv/CsBuilder
 public LessThanComparison(Expression left, Expression right)
     : base(left, ComparisonOperator.LessThan, right)
 {
 }
コード例 #26
0
ファイル: RefExpression.cs プロジェクト: jorgehmv/CsBuilder
 public RefExpression(Expression expression)
 {
     this.expression = expression;
 }
コード例 #27
0
        public static MethodCallExpression RefParam(this MethodCallExpression methodCallExpression, Expression refParam)
        {
            methodCallExpression.AddParam(new RefExpression(refParam));

            return methodCallExpression;
        }
コード例 #28
0
ファイル: IfStatement.cs プロジェクト: jorgehmv/CsBuilder
 public IfStatement(Expression expression, BlockStatement body)
 {
     this.expression = expression;
     this.body = body;
 }
コード例 #29
0
 public YieldReturnStatement(Expression expression)
 {
     this.expression = expression;
 }
コード例 #30
0
ファイル: Arithmetic.cs プロジェクト: jorgehmv/CsBuilder
 public PlusPlusOperation(Expression expression)
 {
     this.expression = expression;
 }