63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
}
private:
uint32_t m_complexity = 0;
uint32_t m_uniqueHoles = 0;
};
class Unification
{
public:
template< typename T >
Unification( T&& expr, const UnificationScore& score ) :
m_expr( forward< T >( expr ) ),
m_score( score )
{}
const auto& expr() const { return m_expr; }
const auto& score() const { return m_score; }
auto& score() { return m_score; }
private:
Term m_expr;
UnificationScore m_score;
};
using UniGen = Generator< Unification >;
UniGen Unify( const Term& lhs, const Term& rhs, UnificationContext& context );
UniGen HalfUnify( const Term& lhs, UnificationContext& context );
}
#endif
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
}
private:
uint32_t m_complexity = 0;
uint32_t m_uniqueHoles = 0;
};
using UniGen = Generator< tuple< Term, UnificationScore, UnificationContext > >;
UniGen Unify( const Term& lhs, const Term& rhs, UnificationContext& context );
UniGen HalfUnify( const Term& lhs, UnificationContext& context );
}
#endif
|