102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
if( leftVal->type() == TSID( type ) )
{
auto nameTerm = m_resolver->consume();
const auto* name = get_if< StringId >( &nameTerm->content() );
auto type = ValueToIRExpr( *pop() );
return ToValue( sema::Decl( move( type ), *name ) );
}
return parsePrefix( strid, prec );
}
optional< uint32_t > Parser::getPrecedence( const Term& t, const pvec& vec )
{
|
|
|
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
if( leftVal->type() == TSID( type ) )
{
auto nameTerm = m_resolver->consume();
const auto* name = get_if< StringId >( &nameTerm->content() );
auto type = ValueToIRExpr( *pop() );
return ToValue( builtins::Decl( move( type ), *name ) );
}
return parsePrefix( strid, prec );
}
optional< uint32_t > Parser::getPrecedence( const Term& t, const pvec& vec )
{
|