Catrobat.IDE.Core.Formulas.FormulaInterpreter.InterpretMinusTokenBackwards C# (CSharp) Method

InterpretMinusTokenBackwards() private method

Resolves the ambiguity between FormulaNodeSubtract and FormulaNodeNegativeSign.
private InterpretMinusTokenBackwards ( IEnumerable tokens ) : IEnumerable
tokens IEnumerable
return IEnumerable
        private IEnumerable<IFormulaToken> InterpretMinusTokenBackwards(IEnumerable<IFormulaToken> tokens)
        {
            foreach (var context in tokens.WithContext())
            {
                var nextToken = context[0];
                var token = context[1];

                // handle minus token
                var minusToken = nextToken as FormulaNodeSubtract;
                if (minusToken != null)
                {
                    nextToken = InterpretMinusToken(token, minusToken);
                    yield return nextToken;
                }

                // yield any non minus token
                if (token != null && !(token is FormulaNodeSubtract)) yield return token;
            }
        }