37
38
39
40
41
42
43
44
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
{
const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
if( !pTemplateRuleSet )
return nullopt;
return pTemplateRuleSet->buildSignature( c, tpl );
}
optional< Value > BuildTemplateParam( const Context& c, const Value& tpl, const Value& arg )
{
const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
if( !pTemplateRuleSet )
return nullopt;
return pTemplateRuleSet->buildParamDecl( c, tpl, arg );
}
void TemplateSetup( const Context& c, UnificationContext& uc, const Value& tpl )
{
const auto pTemplateRuleSet = GetTemplateRuleSet( c, tpl );
if( !pTemplateRuleSet )
return;
pTemplateRuleSet->setup( c, uc, tpl );
}
}
|