Microsoft.R.Core.AST.Operators.Operator.IsUnaryOperator C# (CSharp) Method

IsUnaryOperator() public static method

Given token stream and operator type determines if operator is unary
public static IsUnaryOperator ( TokenStream tokens, ITextProvider textProvider, OperatorType operatorType, int offset ) : bool
tokens TokenStream Token stream
textProvider ITextProvider Text provider
operatorType OperatorType Operator type
offset int Offset to look back
return bool
        public static bool IsUnaryOperator(TokenStream<RToken> tokens, ITextProvider textProvider, 
                                           OperatorType operatorType, int offset) {
            if (!IsPossibleUnary(operatorType)) {
                return false;
            }

            // If operator is preceded by an operator, it is then unary
            var precedingTokenType = tokens.LookAhead(offset).TokenType;
            switch (precedingTokenType) {
                case RTokenType.Operator:
                case RTokenType.OpenBrace:
                case RTokenType.OpenCurlyBrace:
                case RTokenType.OpenSquareBracket:
                case RTokenType.OpenDoubleSquareBracket:
                case RTokenType.Semicolon:
                case RTokenType.Keyword:
                    return true;
            }
            return false;
        }