Make more things immutable

This commit is contained in:
Max Brunsfeld 2013-11-13 20:22:06 -08:00
parent f7063ba1d8
commit 8a0a442a24
12 changed files with 40 additions and 60 deletions

View file

@ -13,11 +13,11 @@ Describe(item_sets) {
AssertThat(
item_set,
EqualsContainer(ItemSet({
Item("term", grammar.rules["term"], 0),
Item("factor", grammar.rules["factor"], 0),
Item("variable", grammar.rules["variable"], 0),
Item("number", grammar.rules["number"], 0),
Item("left_paren", grammar.rules["left_paren"], 0),
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),
})));
}
};

View file

@ -9,7 +9,7 @@ Describe(items) {
It(finds_the_item_at_the_start_of_a_rule) {
Item item = Item::at_beginning_of_rule("expression", grammar);
AssertThat(item, Equals(Item("expression", grammar.rules["expression"], 0)));
AssertThat(item, Equals(Item("expression", grammar.rule("expression"), 0)));
}
};
};

View file

@ -7,41 +7,31 @@ using namespace tree_sitter::rules;
namespace test_grammars {
Grammar arithmetic() {
return Grammar({
"expression",
"term",
"factor",
"number",
"variable",
"plus",
"times",
"left_paren",
"right_paren"
}, {
choice({
{ "expression", choice({
seq({
sym("term"),
sym("plus"),
sym("term") }),
sym("term") }),
choice({
sym("term") }) },
{ "term", choice({
seq({
sym("factor"),
sym("times"),
sym("factor") }),
sym("factor") }),
choice({
sym("factor") }) },
{ "factor", choice({
sym("variable"),
sym("number"),
seq({
sym("left_paren"),
sym("expression"),
sym("right_paren") }) }),
pattern("\\d+"),
pattern("\\w+"),
str("+"),
str("*"),
str("("),
str(")")
sym("right_paren") }) }) },
{ "number", pattern("\\d+") },
{ "variable", pattern("\\w+") },
{ "plus", str("+") },
{ "times", str("*") },
{ "left_paren", str("(") },
{ "right_paren", str(")") }
});
}
}