]> granicus.if.org Git - clang/commitdiff
Minor comment improvements.
authorChris Lattner <sabre@nondot.org>
Thu, 2 Aug 2007 21:47:28 +0000 (21:47 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 2 Aug 2007 21:47:28 +0000 (21:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40760 91177308-0d34-0410-b5e6-96231b3b80d8

AST/Expr.cpp
include/clang/AST/Expr.h

index 44e8271bdb5129385842dba0ae982ac702e4b835..20168b7840764c3c1bb463228ad0ecdefbd85266 100644 (file)
@@ -583,6 +583,8 @@ bool Expr::isNullPointerConstant(ASTContext &Ctx) const {
   return isIntegerConstantExpr(Val, Ctx, 0, true) && Val == 0;
 }
 
+/// getComponentType - Determine whether the components of this access are
+/// "point" "color" or "texture" elements.
 OCUVectorComponent::ComponentType OCUVectorComponent::getComponentType() const {
   // derive the component type, no need to waste space.
   const char *compStr = Accessor.getName();
@@ -593,6 +595,8 @@ OCUVectorComponent::ComponentType OCUVectorComponent::getComponentType() const {
   assert(0 && "getComponentType(): Illegal accessor");
 }
 
+/// containsDuplicateComponents - Return true if any element access is
+/// repeated.
 bool OCUVectorComponent::containsDuplicateComponents() const {
   const char *compStr = Accessor.getName();
   unsigned length = strlen(compStr);
index 32f4053c24feb3d035027779112059d35c842b69..1b5dbe74763037d96b7e06f5b76d40545a2d14af 100644 (file)
@@ -463,7 +463,9 @@ public:
   static bool classof(const MemberExpr *) { return true; }
 };
 
-/// OCUVectorComponent
+/// OCUVectorComponent - This represents access to specific components of a
+/// vector, and may occur on the left hand side or right hand side.  For example
+/// the following is legal:  "V.xy = V.zw" if V is a 4 element ocu vector.
 ///
 class OCUVectorComponent : public Expr {
   Expr *Base;
@@ -471,18 +473,25 @@ class OCUVectorComponent : public Expr {
   SourceLocation AccessorLoc;
 public:
   enum ComponentType {
-    Point,
-    Color,
-    Texture
+    Point,   // xywz
+    Color,   // rgba
+    Texture  // uv
   };
   OCUVectorComponent(QualType ty, Expr *base, IdentifierInfo &accessor,
                      SourceLocation loc) : Expr(OCUVectorComponentClass, ty), 
                      Base(base), Accessor(accessor), AccessorLoc(loc) {}
                      
-  Expr *getBase() const { return Base; }
-  IdentifierInfo & getAccessor() const { return Accessor; }
+  const Expr *getBase() const { return Base; }
+  Expr *getBase() { return Base; }
+  
+  IdentifierInfo &getAccessor() const { return Accessor; }
+  
+  /// getComponentType - Determine whether the components of this access are
+  /// "point" "color" or "texture" elements.
   ComponentType getComponentType() const;
 
+  /// containsDuplicateComponents - Return true if any element access is
+  /// repeated.
   bool containsDuplicateComponents() const;
   
   virtual SourceRange getSourceRange() const {