Пример #1
0
        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));
        }
Пример #2
0
 public Assignment(DerefVariable variable, AssignmentOperator assignmentOperator, Expression expression)
 {
     this.derefVariable      = variable;
     this.assignmentOperator = assignmentOperator;
     this.expression         = expression;
 }