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 13namespace 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 */ 19struct ASTFieldSuffix : public ASTSuffix { 20 ASTFieldSuffix(int offset, StringFragment field) 21 : INHERITED(offset, ASTSuffix::kField_Kind) 22 , fField(field) {} 23 24 String description() const override { 25 return "." + fField; 26 } 27 28 StringFragment fField; 29 30 typedef ASTSuffix INHERITED; 31}; 32 33} // namespace 34 35#endif 36