예제 #1
0
        private static bool TryPromoteToken(IToken token, out IHasPrecedence <ITokenPrecedenceVisitor> precedenceToken)
        {
            if (token is IHasPrecedence <ITokenPrecedenceVisitor> convertedToken)
            {
                precedenceToken = convertedToken;
                return(true);
            }

            precedenceToken = null;
            return(false);
        }
예제 #2
0
        public bool TryGetPrecendece(IHasPrecedence <ITokenPrecedenceVisitor> token, out int precedence)
        {
            precedence = 0;
            if (token.TryAccept(this, out precedence))
            {
                precedence = precedence + _currentTokenPrecedenceIncrement;
                return(true);
            }

            _currentTokenPrecedenceIncrement += precedence;
            return(false);
        }