7 #include <hilti/ast/node.h> 8 #include <hilti/base/type_erase.h> 17 namespace statement::detail {
18 #include <hilti/autogen/__statement.h> 21 inline Node to_node(Statement t) {
return Node(std::move(t)); }
24 inline std::ostream& operator<<(std::ostream& out, Statement s) {
return out << to_node(std::move(s)); }
26 inline bool operator==(
const Statement& x,
const Statement& y) {
30 assert(x.isEqual(y) == y.isEqual(x));
34 inline bool operator!=(
const Statement& s1,
const Statement& s2) {
return ! (s1 == s2); }
38 using Statement = statement::detail::Statement;
41 template<typename T, typename std::enable_if_t<std::is_base_of<trait::isStatement, T>::value>* =
nullptr>
42 inline Node to_node(T t) {
43 return Node(Statement(std::move(t)));
Definition: statement.h:14