Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ParseNode.h

    r427854b r033ff37  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Feb  7 17:56:02 2020
    13 // Update Count     : 891
     12// Last Modified On : Thu Jul 25 22:17:10 2019
     13// Update Count     : 876
    1414//
    1515
     
    2828#include "Common/UniqueName.h"     // for UniqueName
    2929#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
    3231#include "SynTree/Expression.h"    // for Expression, ConstantExpr (ptr only)
    3332#include "SynTree/Label.h"         // for Label
     
    185184
    186185Expression * build_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
    187 Expression * build_keyword_cast( AggregateDecl::Aggregate target, ExpressionNode * expr_node );
     186Expression * build_keyword_cast( KeywordCastExpr::Target target, ExpressionNode * expr_node );
    188187Expression * build_virtual_cast( DeclarationNode * decl_node, ExpressionNode * expr_node );
    189188Expression * build_fieldSel( ExpressionNode * expr_node, Expression * member );
     
    218217        enum Length { Short, Long, LongLong, NoLength };
    219218        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[];
    220223        enum BuiltinType { Valist, AutoType, Zero, One, NoBuiltinType };
    221224        static const char * builtinTypeNames[];
     
    234237        static DeclarationNode * newQualifiedType( DeclarationNode *, DeclarationNode * );
    235238        static DeclarationNode * newFunction( const std::string * name, DeclarationNode * ret, DeclarationNode * param, StatementNode * body );
    236         static DeclarationNode * newAggregate( AggregateDecl::Aggregate kind, 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 );
    237240        static DeclarationNode * newEnum( const std::string * name, DeclarationNode * constants, bool body );
    238241        static DeclarationNode * newEnumConstant( const std::string * name, ExpressionNode * constant );
    239242        static DeclarationNode * newName( const std::string * );
    240243        static DeclarationNode * newFromTypeGen( const std::string *, ExpressionNode * params );
    241         static DeclarationNode * newTypeParam( TypeDecl::Kind, const std::string * );
     244        static DeclarationNode * newTypeParam( TypeClass, const std::string * );
    242245        static DeclarationNode * newTrait( const std::string * name, DeclarationNode * params, DeclarationNode * asserts );
    243246        static DeclarationNode * newTraitUse( const std::string * name, ExpressionNode * params );
     
    309312        struct Variable_t {
    310313//              const std::string * name;
    311                 TypeDecl::Kind tyClass;
     314                DeclarationNode::TypeClass tyClass;
    312315                DeclarationNode * assertions;
    313316                DeclarationNode * initializer;
     
    428431Statement * build_asm( bool voltile, Expression * instruction, ExpressionNode * output = nullptr, ExpressionNode * input = nullptr, ExpressionNode * clobber = nullptr, LabelNode * gotolabels = nullptr );
    429432Statement * build_directive( std::string * directive );
    430 SuspendStmt * build_suspend( StatementNode *, SuspendStmt::Type = SuspendStmt::None);
    431433WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when );
    432434WaitForStmt * build_waitfor( ExpressionNode * target, StatementNode * stmt, ExpressionNode * when, WaitForStmt * existing );
     
    450452                                * out++ = result;
    451453                        } else {
    452                                 SemanticError( cur->location, "type specifier declaration in forall clause is currently unimplemented." );
     454                                assertf(false, "buildList unknown type");
    453455                        } // if
    454456                } catch( SemanticErrorException & e ) {
Note: See TracChangeset for help on using the changeset viewer.