diff options
Diffstat (limited to 'gfx/skia/skia/src/sksl/ast/SkSLASTCallSuffix.h')
-rw-r--r-- | gfx/skia/skia/src/sksl/ast/SkSLASTCallSuffix.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/sksl/ast/SkSLASTCallSuffix.h b/gfx/skia/skia/src/sksl/ast/SkSLASTCallSuffix.h new file mode 100644 index 000000000..5cff6f6c9 --- /dev/null +++ b/gfx/skia/skia/src/sksl/ast/SkSLASTCallSuffix.h @@ -0,0 +1,44 @@ +/* + * 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_ASTCALLSUFFIX +#define SKSL_ASTCALLSUFFIX + +#include <sstream> +#include <vector> +#include "SkSLASTSuffix.h" + +namespace SkSL { + +/** + * A parenthesized list of arguments following an expression, indicating a function call. + */ +struct ASTCallSuffix : public ASTSuffix { + ASTCallSuffix(Position position, std::vector<std::unique_ptr<ASTExpression>> arguments) + : INHERITED(position, ASTSuffix::kCall_Kind) + , fArguments(std::move(arguments)) {} + + std::string description() const override { + std::string result("("); + std::string separator = ""; + for (size_t i = 0; i < fArguments.size(); ++i) { + result += separator; + separator = ", "; + result += fArguments[i]->description(); + } + result += ")"; + return result; + } + + std::vector<std::unique_ptr<ASTExpression>> fArguments; + + typedef ASTSuffix INHERITED; +}; + +} // namespace + +#endif |