Changeset 36ebd03 for src/Parser/DeclarationNode.cc
- Timestamp:
- Mar 3, 2016, 1:28:56 PM (10 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 3627356
- Parents:
- 9d7b3ea (diff), 4040425 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r9d7b3ea r36ebd03 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Jul 14 14:46:32 201513 // Update Count : 1 2612 // Last Modified On : Wed Mar 2 17:26:24 2016 13 // Update Count : 134 14 14 // 15 15 … … 34 34 const char *DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "" }; 35 35 const char *DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic" }; 36 const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary" };36 const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary", }; 37 37 const char *DeclarationNode::modifierName[] = { "signed", "unsigned", "short", "long" }; 38 38 const char *DeclarationNode::aggregateName[] = { "struct", "union", "context" }; 39 39 const char *DeclarationNode::typeClassName[] = { "type", "dtype", "ftype" }; 40 const char *DeclarationNode::builtinTypeName[] = { "__builtin_va_list" }; 40 41 41 42 UniqueName DeclarationNode::anonymous( "__anonymous" ); … … 147 148 newnode->type = new TypeData( TypeData::Basic ); 148 149 newnode->type->basic->typeSpec.push_back( bt ); 150 return newnode; 151 } 152 153 DeclarationNode *DeclarationNode::newBuiltinType( BuiltinType bt ) { 154 DeclarationNode *newnode = new DeclarationNode; 155 newnode->type = new TypeData( TypeData::Builtin ); 156 newnode->type->builtin->type = bt; 149 157 return newnode; 150 158 } … … 215 223 DeclarationNode *newnode = new DeclarationNode; 216 224 newnode->name = assign_strptr( name ); 217 // do something with the constant225 newnode->enumeratorValue = constant; 218 226 return newnode; 219 227 } … … 243 251 } 244 252 245 DeclarationNode *DeclarationNode::new Context( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) {253 DeclarationNode *DeclarationNode::newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ) { 246 254 DeclarationNode *newnode = new DeclarationNode; 247 255 newnode->type = new TypeData( TypeData::Aggregate ); 248 newnode->type->aggregate->kind = Context;256 newnode->type->aggregate->kind = Trait; 249 257 newnode->type->aggregate->params = params; 250 258 newnode->type->aggregate->fields = asserts; … … 253 261 } 254 262 255 DeclarationNode *DeclarationNode::new ContextUse( std::string *name, ExpressionNode *params ) {263 DeclarationNode *DeclarationNode::newTraitUse( std::string *name, ExpressionNode *params ) { 256 264 DeclarationNode *newnode = new DeclarationNode; 257 265 newnode->type = new TypeData( TypeData::AggregateInst ); 258 266 newnode->type->aggInst->aggregate = new TypeData( TypeData::Aggregate ); 259 newnode->type->aggInst->aggregate->aggregate->kind = Context;267 newnode->type->aggInst->aggregate->aggregate->kind = Trait; 260 268 newnode->type->aggInst->aggregate->aggregate->name = assign_strptr( name ); 261 269 newnode->type->aggInst->params = params; … … 794 802 errors.append( e ); 795 803 } // try 796 cur = dynamic_cast< 804 cur = dynamic_cast<DeclarationNode *>( cur->get_link() ); 797 805 } // while 798 806 if ( ! errors.isEmpty() ) { … … 881 889 ret = new UnionInstType( type->buildQualifiers(), type->aggregate->name ); 882 890 break; 883 case DeclarationNode:: Context:884 ret = new ContextInstType( type->buildQualifiers(), type->aggregate->name );891 case DeclarationNode::Trait: 892 ret = new TraitInstType( type->buildQualifiers(), type->aggregate->name ); 885 893 break; 886 894 default:
Note:
See TracChangeset
for help on using the changeset viewer.