tree-sitter/spec/compiler/rules/rules_spec.cpp

27 lines
751 B
C++
Raw Normal View History

2013-11-07 13:24:01 -08:00
#include "spec_helper.h"
2013-12-18 20:58:05 -08:00
#include "transitions.h"
2013-11-05 22:15:19 -08:00
START_TEST
describe("Rules", []() {
rules::rule_ptr symbol1 = rules::sym("1");
rules::rule_ptr symbol2 = rules::sym("2");
rules::rule_ptr symbol3 = rules::sym("3");
describe("construction", [&]() {
it("constructs binary trees", [&]() {
AssertThat(
rules::seq({ symbol1, symbol2, symbol3 }),
EqualsPointer(
rules::seq({ rules::seq({ symbol1, symbol2 }), symbol3 })));
AssertThat(
rules::choice({ symbol1, symbol2, symbol3 }),
EqualsPointer(
rules::choice({ rules::choice({ symbol1, symbol2 }), symbol3 })));
});
});
});
END_TEST