bool Parser::ParseBlendOperation(ngfx::BlendOperation & color, ngfx::BlendOperation & alpha)
    {
        if (!IsBlendOperation(Cur().Str())) {
            SpawnError("Failed to parse color blend operation");
            return false;
        }

        color = blendOpKeywords[Consume().Str()];

        if (Match(Token::TOK_COMMA)) {
            Token alphaTok = Consume();
            if (!IsBlendOperation(alphaTok.Str())) {
                SpawnError("Failed to parse alpha blend operation");
                return false;
            }
            
            alpha = blendOpKeywords[alphaTok.Str()];
        }

        return true;
    }
 bool IsStencilOperation(Token const & tok)
 {
     auto tokStr = (std::string)tok.Str();
     return stencilKeywords.find(tokStr) != stencilKeywords.end();
 }
 bool IsComparisonFunction(Token const & tok)
 {
     auto tokStr = (std::string)tok.Str();
     return comparisonKeywords.find(tokStr) != comparisonKeywords.end();
 }