Goose  comma.cpp at [cde0c6d0e3]

File bs/builtins/operators/comma.cpp artifact bb5c879811 part of check-in cde0c6d0e3


#include "builtins/builtins.h"
#include "precedence.h"
#include "builtins/helpers.h"

using namespace empathy;
using namespace empathy::ir;
using namespace empathy::parse;

namespace empathy::builtins
{
    void SetupCommaOp( Env& e )
    {
        RegisterLeftAssInfixOp( e, ","_sid, precedence::CommaOp,
            []( auto&& lhs, auto&& rhs )
            {
                if( IsOpenTuple( lhs ) )
                    return AppendToTuple( lhs, rhs );

                return AppendToTuple( AppendToTuple( EmptyTuple(), lhs ), rhs );
            } );
    }
}