#include "sema.h"
namespace empathy::sema
{
class FunctionInvocationRule : public InvocationRule
{
public:
virtual optional< Value > resolveInvocation( const ptr< Env >& env, const Value& callee, const Value& args ) const override
{
// Just a placeholder for now
cout << "func invocation\n";
return nullopt;
}
virtual Term getSignature( const ptr< Env >& env, const Value& callee ) const override
{
// Just a placeholder for now
return TSID( func_sig_placeholder );
}
};
void SetupFunctionInvocationRule( InvocationRuleSet& ruleSet )
{
ruleSet.addRule(
ValueToIRExpr( Value( TSID( type ), TVEC( TSID( func ),
ANYTERM( k ), ANYTERM( rt ), ANYTERM( p ), ANYTERM( sig ) ) ) ),
make_shared< FunctionInvocationRule >() );
}
}