23 lines
796 B
C++
23 lines
796 B
C++
#include "spec_helper.h"
|
|
#include "../test_grammars/arithmetic.h"
|
|
|
|
using namespace tree_sitter::lr;
|
|
|
|
Describe(item_sets) {
|
|
Grammar grammar = test_grammars::arithmetic();
|
|
|
|
It(computes_the_closure_of_an_item_set_under_symbol_expansion) {
|
|
Item item = Item::at_beginning_of_rule("term", grammar);
|
|
ItemSet item_set = ItemSet({ item }).closure_in_grammar(grammar);
|
|
|
|
AssertThat(
|
|
item_set,
|
|
EqualsContainer(ItemSet({
|
|
Item("term", grammar.rule("term"), 0),
|
|
Item("factor", grammar.rule("factor"), 0),
|
|
Item("variable", grammar.rule("variable"), 0),
|
|
Item("number", grammar.rule("number"), 0),
|
|
Item("left_paren", grammar.rule("left_paren"), 0),
|
|
})));
|
|
}
|
|
};
|