#ifndef TreeSitter_SpecHelper_h #define TreeSitter_SpecHelper_h #include "bandit/bandit.h" #include #include #include #include "grammar.h" using namespace tree_sitter; using namespace std; using namespace bandit; #define START_TEST go_bandit([]() { #define END_TEST }); namespace std { template inline ostream& operator<<(ostream &stream, const unordered_set &set) { stream << string("#"; } template inline ostream& operator<<(ostream &stream, const unordered_map &map) { stream << string("# "); stream << pair.second; started = true; } return stream << ">"; } } namespace snowhouse { template struct EqualsPointerConstraint : Expression> { EqualsPointerConstraint(const ExpectedType& expected) : expected(expected) {} template bool operator()(const ActualType& actual) const { return *expected == *actual; } ExpectedType expected; }; template struct Stringizer> { static string ToString(const EqualsPointerConstraint& constraint) { ostringstream builder; builder << "pointer to " << snowhouse::Stringize(constraint.expected); return builder.str(); } }; template inline EqualsPointerConstraint EqualsPointer(const ExpectedType& expected) { return EqualsPointerConstraint(expected); } } string src_dir(); #endif