1 /* 2 * Copyright 2016 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SKSL_ASTFIELDSUFFIX 9 #define SKSL_ASTFIELDSUFFIX 10 11 #include "SkSLASTSuffix.h" 12 13 namespace SkSL { 14 15 /** 16 * A dotted identifier of the form ".foo". We refer to these as "fields" at parse time even if it is 17 * actually vector swizzle (which looks the same to the parser). 18 */ 19 struct ASTFieldSuffix : public ASTSuffix { ASTFieldSuffixASTFieldSuffix20 ASTFieldSuffix(Position position, String field) 21 : INHERITED(position, ASTSuffix::kField_Kind) 22 , fField(std::move(field)) {} 23 descriptionASTFieldSuffix24 String description() const override { 25 return "." + fField; 26 } 27 28 String fField; 29 30 typedef ASTSuffix INHERITED; 31 }; 32 33 } // namespace 34 35 #endif 36