| 19 | |
| 20 | template<typename Rule_T> |
| 21 | bool Test(const char* in, void (*callback)(yard::SimpleTextParser&) = 0) |
| 22 | { |
| 23 | const char* out = in + std::strlen(in); |
| 24 | yard::SimpleTextParser parser(in, out); |
| 25 | const bool pass = parser.Parse<yard::Seq<Rule_T, yard::EndOfInput> >(); |
| 26 | std::printf("%s test for rule %s, on input %s\n", |
| 27 | pass ? "passed" : "FAILED", typeid(Rule_T).name(), in); |
| 28 | if (pass && callback) callback(parser); |
| 29 | return pass; |
| 30 | } |
| 31 | } |
| 32 | |
| 33 | typedef yard::TreeBuildingParser<char>::Node Node; |