Changes in src/AST/Decl.cpp [90be0cf:8c55d34]
- File:
-
- 1 edited
-
src/AST/Decl.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Decl.cpp
r90be0cf r8c55d34 169 169 } 170 170 171 const std::string EnumDecl::getUnmangeldArrayName( const ast::EnumAttribute attr ) const { 172 switch( attr ) { 173 case ast::EnumAttribute::Value: return "values_" + name ; 174 case ast::EnumAttribute::Label: return "labels_" + name; 175 default: /* Posn does not generate array */ 176 return ""; 177 } 178 } 179 180 unsigned EnumDecl::calChildOffset(const std::string & target) const{ 181 unsigned offset = 0; 182 for (auto childEnum: inlinedDecl) { 183 auto childDecl = childEnum->base; 184 if (childDecl->name == target) { 185 return offset; 186 } 187 offset += childDecl->members.size(); 188 } 189 std::cerr << "Cannot find the target enum" << std::endl; 190 return 0; 191 } 192 193 unsigned EnumDecl::calChildOffset(const ast::EnumInstType * target) const{ 194 return calChildOffset(target->base->name); 195 } 196 197 bool EnumDecl::isSubTypeOf(const ast::EnumDecl * other) const { 198 if (name == other->name) return true; 199 for (auto inlined: other->inlinedDecl) { 200 if (isSubTypeOf(inlined->base)) return true; 201 } 202 return false; 203 } 204 171 205 bool EnumDecl::isTyped() const { return base; } 172 206
Note:
See TracChangeset
for help on using the changeset viewer.