1 //
2 // Copyright 2017 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // Declarator.cpp:
7 //   Declarator type for parsing structure field declarators.
8 
9 #include "compiler/translator/Declarator.h"
10 
11 namespace sh
12 {
13 
TDeclarator(const ImmutableString & name,const TSourceLoc & line)14 TDeclarator::TDeclarator(const ImmutableString &name, const TSourceLoc &line)
15     : mName(name), mArraySizes(nullptr), mLine(line)
16 {
17     ASSERT(mName != "");
18 }
19 
TDeclarator(const ImmutableString & name,const TVector<unsigned int> * arraySizes,const TSourceLoc & line)20 TDeclarator::TDeclarator(const ImmutableString &name,
21                          const TVector<unsigned int> *arraySizes,
22                          const TSourceLoc &line)
23     : mName(name), mArraySizes(arraySizes), mLine(line)
24 {
25     ASSERT(mArraySizes);
26 }
27 
isArray() const28 bool TDeclarator::isArray() const
29 {
30     return mArraySizes != nullptr && mArraySizes->size() > 0;
31 }
32 
33 }  // namespace sh
34