public static ArithmeticEvaluationStatement CreatePrefixIncrement(IncrementOperator op, EvaluationStatement operand, StatementInfo info, IStatement parentStatement = null) { return(new ArithmeticEvaluationStatement(true, null, op, operand, info) { ParentStatement = parentStatement }); }
private IExpression ParseUnaryExpression() { if (this.TryParse(TokenType.Operator, "+", "-", "!")) { Token oper = this.lexer.NextToken(); IExpression unaryExpression = this.ParseUnaryExpression(); if (oper.Value == "!") { return(new NotExpression(unaryExpression)); } ArithmeticOperator op = oper.Value == "+" ? ArithmeticOperator.Plus : ArithmeticOperator.Minus; return(new ArithmeticUnaryExpression(op, unaryExpression)); } if (this.TryParse(TokenType.Operator, "++", "--")) { Token oper = this.lexer.NextToken(); IExpression expression = this.ParseTermExpression(); IncrementOperator op = oper.Value == "++" ? IncrementOperator.PreIncrement : IncrementOperator.PreDecrement; return(new IncrementExpression(expression, op)); } if (this.TryParse(TokenType.Operator, "<-", "@")) { this.lexer.NextToken(); IExpression expression = this.ParseTermExpression(); return(new GetValueExpression(expression)); } IExpression termexpr = this.ParseTermExpression(); if (this.TryParse(TokenType.Operator, "++", "--")) { Token oper = this.lexer.NextToken(); IncrementOperator op = oper.Value == "++" ? IncrementOperator.PostIncrement : IncrementOperator.PostDecrement; return(new IncrementExpression(termexpr, op)); } return(termexpr); }
public IncrementExpression(IExpression expression, IncrementOperator oper) : base(expression) { this.oper = oper; }
public IncrementExpression(IExpression expression, IncrementOperator oper) : base(expression) { this.oper = oper; }