/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_RETURNSTATEMENT #define SKSL_RETURNSTATEMENT #include "SkSLExpression.h" #include "SkSLStatement.h" namespace SkSL { /** * A 'return' statement. */ struct ReturnStatement : public Statement { ReturnStatement(Position position) : INHERITED(position, kReturn_Kind) {} ReturnStatement(std::unique_ptr expression) : INHERITED(expression->fPosition, kReturn_Kind) , fExpression(std::move(expression)) {} SkString description() const override { if (fExpression) { return "return " + fExpression->description() + ";"; } else { return SkString("return;"); } } const std::unique_ptr fExpression; typedef Statement INHERITED; }; } // namespace #endif