Bike.Parser.Parser.ParseUnaryExpression C# (CSharp) 메소드

ParseUnaryExpression() 공개 메소드

public ParseUnaryExpression ( ) : ExprNode
리턴 ExprNode
        public ExprNode ParseUnaryExpression()
        {
            var exp = new UnaryExpression
                          {
                              Token = Next(),
                              Postfix = TokenType.None,
                              Prefix = TokenType.None
                          };
            var token = Next();
            if (token.Is(TokenType.DoublePlus) ||
                token.Is(TokenType.DoubleMinus) ||
                token.Is(TokenType.Plus) ||
                token.Is(TokenType.Minus) ||
                token.Is(TokenType.Not))
            {
                exp.Prefix = token.Type;
                Consume();
                exp.Expression = ParseUnaryExpression();
                return exp;
            }

            exp.Expression = ParseLeftHandSideExpression();
            if (Next().Is(TokenType.DoublePlus) || Next().Is(TokenType.DoubleMinus))
            {
                exp.Postfix = Next().Type;
                Consume();
                return exp;
            }

            return exp.Expression;
        }