Ignore:
Timestamp:
Oct 2, 2017, 4:53:32 PM (7 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
d29fa5f
Parents:
50377a4
git-author:
Rob Schluntz <rschlunt@…> (10/02/17 16:53:28)
git-committer:
Rob Schluntz <rschlunt@…> (10/02/17 16:53:32)
Message:

Remove argName from Expression.

If named arguments are ever considered again, they should be added in UntypedExpr? (and maybe also ApplicationExpr?) to avoid unnecessary fields in every Expression. Like designators on initializers, it should be much easier to work with argument names at the call expression level.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Expression.cc

    r50377a4 rbf4b4cf  
    3333#include "GenPoly/Lvalue.h"
    3434
    35 Expression::Expression( Expression *_aname ) : result( 0 ), env( 0 ), argName( _aname ) {}
    36 
    37 Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ), extension( other.extension ) {
     35Expression::Expression() : result( 0 ), env( 0 ) {}
     36
     37Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), extension( other.extension ) {
    3838}
    3939
    4040Expression::~Expression() {
    4141        delete env;
    42         delete argName; // xxx -- there's a problem in cloning ConstantExpr I still don't know how to fix
    4342        delete result;
    4443}
     
    5554}
    5655
    57 ConstantExpr::ConstantExpr( Constant _c, Expression *_aname ) : Expression( _aname ), constant( _c ) {
     56ConstantExpr::ConstantExpr( Constant _c ) : Expression(), constant( _c ) {
    5857        set_result( constant.get_type()->clone() );
    5958}
     
    7069}
    7170
    72 VariableExpr::VariableExpr( DeclarationWithType *_var, Expression *_aname ) : Expression( _aname ), var( _var ) {
     71VariableExpr::VariableExpr( DeclarationWithType *_var ) : Expression(), var( _var ) {
    7372        assert( var );
    7473        assert( var->get_type() );
     
    9796}
    9897
    99 SizeofExpr::SizeofExpr( Expression *expr_, Expression *_aname ) :
    100                 Expression( _aname ), expr(expr_), type(0), isType(false) {
     98SizeofExpr::SizeofExpr( Expression *expr_ ) :
     99                Expression(), expr(expr_), type(0), isType(false) {
    101100        set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) );
    102101}
    103102
    104 SizeofExpr::SizeofExpr( Type *type_, Expression *_aname ) :
    105                 Expression( _aname ), expr(0), type(type_), isType(true) {
     103SizeofExpr::SizeofExpr( Type *type_ ) :
     104                Expression(), expr(0), type(type_), isType(true) {
    106105        set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) );
    107106}
     
    123122}
    124123
    125 AlignofExpr::AlignofExpr( Expression *expr_, Expression *_aname ) :
    126                 Expression( _aname ), expr(expr_), type(0), isType(false) {
     124AlignofExpr::AlignofExpr( Expression *expr_ ) :
     125                Expression(), expr(expr_), type(0), isType(false) {
    127126        set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) );
    128127}
    129128
    130 AlignofExpr::AlignofExpr( Type *type_, Expression *_aname ) :
    131                 Expression( _aname ), expr(0), type(type_), isType(true) {
     129AlignofExpr::AlignofExpr( Type *type_ ) :
     130                Expression(), expr(0), type(type_), isType(true) {
    132131        set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) );
    133132}
     
    149148}
    150149
    151 UntypedOffsetofExpr::UntypedOffsetofExpr( Type *type, const std::string &member, Expression *_aname ) :
    152                 Expression( _aname ), type(type), member(member) {
     150UntypedOffsetofExpr::UntypedOffsetofExpr( Type *type, const std::string &member ) :
     151                Expression(), type(type), member(member) {
    153152        assert( type );
    154153        set_result( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ) );
     
    168167}
    169168
    170 OffsetofExpr::OffsetofExpr( Type *type, DeclarationWithType *member, Expression *_aname ) :
    171                 Expression( _aname ), type(type), member(member) {
     169OffsetofExpr::OffsetofExpr( Type *type, DeclarationWithType *member ) :
     170                Expression(), type(type), member(member) {
    172171        assert( member );
    173172        assert( type );
     
    188187}
    189188
    190 OffsetPackExpr::OffsetPackExpr( StructInstType *type, Expression *aname_ ) : Expression( aname_ ), type( type ) {
     189OffsetPackExpr::OffsetPackExpr( StructInstType *type ) : Expression(), type( type ) {
    191190        assert( type );
    192191        set_result( new ArrayType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0, false, false ) );
     
    203202}
    204203
    205 AttrExpr::AttrExpr( Expression *attr, Expression *expr_, Expression *_aname ) :
    206                 Expression( _aname ), attr( attr ), expr(expr_), type(0), isType(false) {
    207 }
    208 
    209 AttrExpr::AttrExpr( Expression *attr, Type *type_, Expression *_aname ) :
    210                 Expression( _aname ), attr( attr ), expr(0), type(type_), isType(true) {
     204AttrExpr::AttrExpr( Expression *attr, Expression *expr_ ) :
     205                Expression(), attr( attr ), expr(expr_), type(0), isType(false) {
     206}
     207
     208AttrExpr::AttrExpr( Expression *attr, Type *type_ ) :
     209                Expression(), attr( attr ), expr(0), type(type_), isType(true) {
    211210}
    212211
     
    232231}
    233232
    234 CastExpr::CastExpr( Expression *arg_, Type *toType, Expression *_aname ) : Expression( _aname ), arg(arg_) {
     233CastExpr::CastExpr( Expression *arg_, Type *toType ) : Expression(), arg(arg_) {
    235234        set_result(toType);
    236235}
    237236
    238 CastExpr::CastExpr( Expression *arg_, Expression *_aname ) : Expression( _aname ), arg(arg_) {
     237CastExpr::CastExpr( Expression *arg_ ) : Expression(), arg(arg_) {
    239238        set_result( new VoidType( Type::Qualifiers() ) );
    240239}
     
    284283}
    285284
    286 UntypedMemberExpr::UntypedMemberExpr( Expression * member, Expression *aggregate, Expression *_aname ) :
    287                 Expression( _aname ), member(member), aggregate(aggregate) {
     285UntypedMemberExpr::UntypedMemberExpr( Expression * member, Expression *aggregate ) :
     286                Expression(), member(member), aggregate(aggregate) {
    288287        assert( aggregate );
    289288}
     
    321320
    322321
    323 MemberExpr::MemberExpr( DeclarationWithType *member, Expression *aggregate, Expression *_aname ) :
    324                 Expression( _aname ), member(member), aggregate(aggregate) {
     322MemberExpr::MemberExpr( DeclarationWithType *member, Expression *aggregate ) :
     323                Expression(), member(member), aggregate(aggregate) {
    325324        assert( member );
    326325        assert( aggregate );
     
    351350}
    352351
    353 UntypedExpr::UntypedExpr( Expression *_function, const std::list<Expression *> &_args, Expression *_aname ) :
    354                 Expression( _aname ), function(_function), args(_args) {}
     352UntypedExpr::UntypedExpr( Expression *function, const std::list<Expression *> &args ) :
     353                Expression(), function(function), args(args) {}
    355354
    356355UntypedExpr::UntypedExpr( const UntypedExpr &other ) :
     
    402401}
    403402
    404 NameExpr::NameExpr( std::string name, Expression *_aname ) : Expression( _aname ), name(name) {
     403NameExpr::NameExpr( std::string name ) : Expression(), name(name) {
    405404        assertf(name != "0", "Zero is not a valid name");
    406405        assertf(name != "1", "One is not a valid name");
     
    417416}
    418417
    419 LogicalExpr::LogicalExpr( Expression *arg1_, Expression *arg2_, bool andp, Expression *_aname ) :
    420                 Expression( _aname ), arg1(arg1_), arg2(arg2_), isAnd(andp) {
     418LogicalExpr::LogicalExpr( Expression *arg1_, Expression *arg2_, bool andp ) :
     419                Expression(), arg1(arg1_), arg2(arg2_), isAnd(andp) {
    421420        set_result( new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
    422421}
     
    439438}
    440439
    441 ConditionalExpr::ConditionalExpr( Expression * arg1, Expression * arg2, Expression * arg3, Expression *_aname ) :
    442                 Expression( _aname ), arg1(arg1), arg2(arg2), arg3(arg3) {}
     440ConditionalExpr::ConditionalExpr( Expression * arg1, Expression * arg2, Expression * arg3 ) :
     441                Expression(), arg1(arg1), arg2(arg2), arg3(arg3) {}
    443442
    444443ConditionalExpr::ConditionalExpr( const ConditionalExpr &other ) :
Note: See TracChangeset for help on using the changeset viewer.