Changeset 28f8f15 for src/Parser/DeclarationNode.h
- Timestamp:
- Apr 27, 2023, 3:13:24 PM (3 years ago)
- Branches:
- ADT
- Children:
- 561354f
- Parents:
- b110bcc
- File:
-
- 1 edited
-
src/Parser/DeclarationNode.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.h
rb110bcc r28f8f15 76 76 static DeclarationNode * newStaticAssert( ExpressionNode * condition, ast::Expr * message ); 77 77 78 // Experimental algebric data type 79 static DeclarationNode * newADT( const std::string * name, DeclarationNode * constructors ); 80 static DeclarationNode * newDataConstructor( const std::string * name ); 81 // static DeclarationNode * newDataConstructor( const std::string * name, DeclarationNode * typeSpecifiers ); 82 78 83 DeclarationNode(); 79 84 ~DeclarationNode(); … … 156 161 ExpressionNode * bitfieldWidth = nullptr; 157 162 std::unique_ptr<ExpressionNode> enumeratorValue; 163 158 164 bool hasEllipsis = false; 159 165 ast::Linkage::Spec linkage; … … 210 216 void buildList( DeclarationNode * firstNode, std::vector<ast::ptr<ast::DeclWithType>> & outputList ); 211 217 void buildTypeList( const DeclarationNode * firstNode, std::vector<ast::ptr<ast::Type>> & outputList ); 218 void buildDataConstructors( DeclarationNode * firstNode, std::vector<ast::ptr<ast::StructDecl>> & outputList ); 219 ast::UnionDecl * buildDataUnion( ast::EnumDecl * data, const std::vector<ast::ptr<ast::StructDecl>> & typeList ); 220 ast::EnumDecl * buildTag( ast::EnumDecl * data, const std::vector<ast::ptr<ast::StructDecl>> & typeList ); 221 ast::StructDecl * buildTaggedUnions( const ast::EnumDecl * data, const ast::EnumDecl * tags, const ast::UnionDecl * data_union ); 212 222 213 223 template<typename AstType, typename NodeType,
Note:
See TracChangeset
for help on using the changeset viewer.