Changes in src/Parser/ParseNode.h [5721a6d:630a82a]
- File:
-
- 1 edited
-
src/Parser/ParseNode.h (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ParseNode.h
r5721a6d r630a82a 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Feb 1 13:32:32201613 // Update Count : 18412 // Last Modified On : Fri Apr 8 16:27:20 2016 13 // Update Count : 205 14 14 // 15 15 … … 329 329 enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary }; 330 330 enum Modifier { Signed, Unsigned, Short, Long }; 331 enum Aggregate { Struct, Union, Context };331 enum Aggregate { Struct, Union, Trait }; 332 332 enum TypeClass { Type, Dtype, Ftype }; 333 enum BuiltinType { Valist }; 333 334 334 335 static const char *storageName[]; … … 338 339 static const char *aggregateName[]; 339 340 static const char *typeClassName[]; 341 static const char *builtinTypeName[]; 340 342 341 343 static DeclarationNode *newFunction( std::string *name, DeclarationNode *ret, DeclarationNode *param, StatementNode *body, bool newStyle = false ); … … 352 354 static DeclarationNode *newFromTypeGen( std::string *, ExpressionNode *params ); 353 355 static DeclarationNode *newTypeParam( TypeClass, std::string *); 354 static DeclarationNode *new Context( std::string *name, DeclarationNode *params, DeclarationNode *asserts );355 static DeclarationNode *new ContextUse( std::string *name, ExpressionNode *params );356 static DeclarationNode *newTrait( std::string *name, DeclarationNode *params, DeclarationNode *asserts ); 357 static DeclarationNode *newTraitUse( std::string *name, ExpressionNode *params ); 356 358 static DeclarationNode *newTypeDecl( std::string *name, DeclarationNode *typeParams ); 357 359 static DeclarationNode *newPointer( DeclarationNode *qualifiers ); … … 363 365 static DeclarationNode *newAttr( std::string *, ExpressionNode *expr ); 364 366 static DeclarationNode *newAttr( std::string *, DeclarationNode *type ); 367 static DeclarationNode *newBuiltinType( BuiltinType ); 365 368 366 369 DeclarationNode *addQualifiers( DeclarationNode *); … … 401 404 LinkageSpec::Type get_linkage() const { return linkage; } 402 405 DeclarationNode *extractAggregate() const; 406 ExpressionNode *get_enumeratorValue() const { return enumeratorValue; } 403 407 404 408 DeclarationNode(); … … 413 417 std::list< std::string > attributes; 414 418 ExpressionNode *bitfieldWidth; 419 ExpressionNode *enumeratorValue; 415 420 InitializerNode *initializer; 416 421 bool hasEllipsis; … … 530 535 bool aggregate; 531 536 ExpressionNode *designator; // may be list 537 InitializerNode *kids; 538 }; 539 540 class CompoundLiteralNode : public ExpressionNode { 541 public: 542 CompoundLiteralNode( DeclarationNode *type, InitializerNode *kids ); 543 CompoundLiteralNode( const CompoundLiteralNode &type ); 544 ~CompoundLiteralNode(); 545 546 virtual CompoundLiteralNode *clone() const; 547 548 DeclarationNode *get_type() const { return type; } 549 CompoundLiteralNode *set_type( DeclarationNode *t ) { type = t; return this; } 550 551 InitializerNode *get_initializer() const { return kids; } 552 CompoundLiteralNode *set_initializer( InitializerNode *k ) { kids = k; return this; } 553 554 void print( std::ostream &, int indent = 0 ) const; 555 void printOneLine( std::ostream &, int indent = 0 ) const; 556 557 virtual Expression *build() const; 558 private: 559 DeclarationNode *type; 532 560 InitializerNode *kids; 533 561 };
Note:
See TracChangeset
for help on using the changeset viewer.