private Assignment TryParseAssignment(string name) { DerefVariable derefVar = TryParseDerefVariable(name); if (derefVar is null) { return(null); } IOperator assignmentOperator = TryParseOperator() ?? throw new UnexpectedToken(_scanner.CurrentToken.Position); if (!(assignmentOperator is AssignmentOperator)) { throw new UnexpectedToken(_scanner.CurrentToken.Position); } _scanner.Next(); Expression expression = TryParseExpression() ?? throw new UnexpectedToken(_scanner.CurrentToken.Position); return(new Assignment(derefVar, assignmentOperator as AssignmentOperator, expression)); }
public Assignment(DerefVariable variable, AssignmentOperator assignmentOperator, Expression expression) { this.derefVariable = variable; this.assignmentOperator = assignmentOperator; this.expression = expression; }