Ignore:
Timestamp:
Aug 27, 2018, 4:40:34 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
b7c89aa
Parents:
f9feab8 (diff), 305581d (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.
Message:

Merge branch 'master' into cleanup-dtors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/TypeData.h

    rf9feab8 r90152a4  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Sep  1 23:33:45 2017
    13 // Update Count     : 190
     12// Last Modified On : Fri Jul 20 13:56:40 2018
     13// Update Count     : 195
    1414//
    1515
     
    2626
    2727struct TypeData {
    28         enum Kind { Basic, Pointer, Array, Reference, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
    29                                 SymbolicInst, Tuple, Typeof, Builtin, Unknown };
     28        enum Kind { Basic, Pointer, Reference, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
     29                                SymbolicInst, Tuple, Typeof, Builtin, GlobalScope, Qualified, Unknown };
    3030
    3131        struct Aggregate_t {
     
    3636                DeclarationNode * fields;
    3737                bool body;
     38                bool anon;
    3839
    3940                bool tagged;
     
    5758                DeclarationNode * constants;
    5859                bool body;
     60                bool anon;
    5961        };
    6062
     
    6466                mutable DeclarationNode * oldDeclList;
    6567                StatementNode * body;
    66                 bool newStyle;
     68                ExpressionNode * withExprs;                                             // expressions from function's with_clause
    6769        };
    6870
     
    7476                DeclarationNode * assertions;
    7577        };
     78
     79        struct Qualified_t {                                                            // qualified type S.T
     80                TypeData * parent;
     81                TypeData * child;
     82        };
     83
     84        CodeLocation location;
    7685
    7786        Kind kind;
     
    8695        DeclarationNode * forall;
    8796
    88         // Basic_t basic;
    8997        Aggregate_t aggregate;
    9098        AggInst_t aggInst;
    9199        Array_t array;
    92100        Enumeration_t enumeration;
    93         // Variable_t variable;
    94101        Function_t function;
    95102        Symbolic_t symbolic;
     103        Qualified_t qualified;
    96104        DeclarationNode * tuple;
    97105        ExpressionNode * typeexpr;
     
    101109        void print( std::ostream &, int indent = 0 ) const;
    102110        TypeData * clone() const;
     111
     112        const std::string * leafName() const;
    103113};
    104114
     
    118128TupleType * buildTuple( const TypeData * );
    119129TypeofType * buildTypeof( const TypeData * );
    120 Declaration * buildDecl( const TypeData *, const std::string &, Type::StorageClasses, Expression *, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec, Expression * asmName, Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() );
     130Declaration * buildDecl( const TypeData *, const std::string &, Type::StorageClasses, Expression *, Type::FuncSpecifiers funcSpec, LinkageSpec::Spec, Expression * asmName,
     131                                                 Initializer * init = nullptr, std::list< class Attribute * > attributes = std::list< class Attribute * >() );
    121132FunctionType * buildFunction( const TypeData * );
    122133void buildKRFunction( const TypeData::Function_t & function );
Note: See TracChangeset for help on using the changeset viewer.