Changes in src/Parser/ParseNode.h [427854b:033ff37]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ParseNode.h
r427854b r033ff37 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Feb 7 17:56:02 202013 // Update Count : 8 9112 // Last Modified On : Thu Jul 25 22:17:10 2019 13 // Update Count : 876 14 14 // 15 15 … … 28 28 #include "Common/UniqueName.h" // for UniqueName 29 29 #include "Common/utility.h" // for maybeClone, maybeBuild 30 #include "SynTree/LinkageSpec.h" // for Spec 31 #include "SynTree/Declaration.h" // for Aggregate 30 #include "Parser/LinkageSpec.h" // for Spec 32 31 #include "SynTree/Expression.h" // for Expression, ConstantExpr (ptr only) 33 32 #include "SynTree/Label.h" // for Label … … 185 184 186 185 Expression * build_cast( DeclarationNode * decl_node, ExpressionNode * expr_node ); 187 Expression * build_keyword_cast( AggregateDecl::Aggregatetarget, ExpressionNode * expr_node );186 Expression * build_keyword_cast( KeywordCastExpr::Target target, ExpressionNode * expr_node ); 188 187 Expression * build_virtual_cast( DeclarationNode * decl_node, ExpressionNode * expr_node ); 189 188 Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member ); … … 218 217 enum Length { Short, Long, LongLong, NoLength }; 219 218 static const char * lengthNames[]; 219 enum Aggregate { Struct, Union, Exception, Trait, Coroutine, Monitor, Thread, NoAggregate }; 220 static const char * aggregateNames[]; 221 enum TypeClass { Otype, Dtype, Ftype, Ttype, NoTypeClass }; 222 static const char * typeClassNames[]; 220 223 enum BuiltinType { Valist, AutoType, Zero, One, NoBuiltinType }; 221 224 static const char * builtinTypeNames[]; … … 234 237 static DeclarationNode * newQualifiedType( DeclarationNode *, DeclarationNode * ); 235 238 static DeclarationNode * newFunction( const std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body ); 236 static DeclarationNode * newAggregate( Aggregate Decl::Aggregatekind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body );239 static DeclarationNode * newAggregate( Aggregate kind, const std::string * name, ExpressionNode * actuals, DeclarationNode * fields, bool body ); 237 240 static DeclarationNode * newEnum( const std::string * name, DeclarationNode * constants, bool body ); 238 241 static DeclarationNode * newEnumConstant( const std::string * name, ExpressionNode * constant ); 239 242 static DeclarationNode * newName( const std::string * ); 240 243 static DeclarationNode * newFromTypeGen( const std::string *, ExpressionNode * params ); 241 static DeclarationNode * newTypeParam( Type Decl::Kind, const std::string * );244 static DeclarationNode * newTypeParam( TypeClass, const std::string * ); 242 245 static DeclarationNode * newTrait( const std::string * name, DeclarationNode * params, DeclarationNode * asserts ); 243 246 static DeclarationNode * newTraitUse( const std::string * name, ExpressionNode * params ); … … 309 312 struct Variable_t { 310 313 // const std::string * name; 311 TypeDecl::KindtyClass;314 DeclarationNode::TypeClass tyClass; 312 315 DeclarationNode * assertions; 313 316 DeclarationNode * initializer; … … 428 431 Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr ); 429 432 Statement * build_directive( std::string * directive ); 430 SuspendStmt * build_suspend( StatementNode *, SuspendStmt::Type = SuspendStmt::None);431 433 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when ); 432 434 WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when, WaitForStmt * existing ); … … 450 452 * out++ = result; 451 453 } else { 452 SemanticError( cur->location, "type specifier declaration in forall clause is currently unimplemented.");454 assertf(false, "buildList unknown type"); 453 455 } // if 454 456 } catch( SemanticErrorException & e ) {
Note:
See TracChangeset
for help on using the changeset viewer.