blob: 4684df409310d434ca17c16374a51c5cbf6f76b4 [file] [log] [blame]
* Copyright 2016 Google Inc.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
#include "SkSLUtil.h"
namespace SkSL {
StandaloneShaderCaps standaloneCaps;
void sksl_abort() {
void write_stringstream(const StringStream& s, OutputStream& out) {
out.write(s.str().c_str(), s.str().size());
bool is_assignment(Token::Kind op) {
switch (op) {
case Token::EQ: // fall through
case Token::PLUSEQ: // fall through
case Token::MINUSEQ: // fall through
case Token::STAREQ: // fall through
case Token::SLASHEQ: // fall through
case Token::PERCENTEQ: // fall through
case Token::SHLEQ: // fall through
case Token::SHREQ: // fall through
case Token::BITWISEOREQ: // fall through
case Token::BITWISEXOREQ: // fall through
case Token::BITWISEANDEQ: // fall through
case Token::LOGICALOREQ: // fall through
case Token::LOGICALXOREQ: // fall through
return true;
return false;
Token::Kind remove_assignment(Token::Kind op) {
switch (op) {
case Token::PLUSEQ: return Token::PLUS;
case Token::MINUSEQ: return Token::MINUS;
case Token::STAREQ: return Token::STAR;
case Token::SLASHEQ: return Token::SLASH;
case Token::PERCENTEQ: return Token::PERCENT;
case Token::SHLEQ: return Token::SHL;
case Token::SHREQ: return Token::SHR;
case Token::BITWISEOREQ: return Token::BITWISEOR;
case Token::BITWISEXOREQ: return Token::BITWISEXOR;
case Token::BITWISEANDEQ: return Token::BITWISEAND;
case Token::LOGICALOREQ: return Token::LOGICALOR;
case Token::LOGICALXOREQ: return Token::LOGICALXOR;
case Token::LOGICALANDEQ: return Token::LOGICALAND;
default: return Token::INVALID;
} // namespace