Refactor classes representing individual characters & character classes

This commit is contained in:
Max Brunsfeld 2013-12-21 23:53:26 -08:00
parent 8dec6c90f4
commit 9667b3fd6c
17 changed files with 167 additions and 120 deletions

View file

@ -47,8 +47,8 @@ Describe(item_sets) {
AssertThat(
set.char_transitions(grammar),
Equals(transition_map<rules::Rule, ItemSet>({
{ char_class(CharClassTypeWord), item_set({ Item("variable", choice({ repeat(char_class(CharClassTypeWord)), blank() }), 1) }) },
{ char_class(CharClassTypeDigit), item_set({ Item("number", choice({ repeat(char_class(CharClassTypeDigit)), blank() }), 1) }) },
{ character(CharClassWord), item_set({ Item("variable", choice({ repeat(character(CharClassWord)), blank() }), 1) }) },
{ character(CharClassDigit), item_set({ Item("number", choice({ repeat(character(CharClassDigit)), blank() }), 1) }) },
{ character('('), item_set({ Item("left_paren", blank(), 1) }) }
})));
}

View file

@ -21,9 +21,9 @@ Describe(pattern_rules) {
AssertThat(
rule.to_rule_tree()->to_string(),
Equals(seq({
char_class(CharClassTypeWord),
character(CharClassWord),
character('-'),
char_class(CharClassTypeDigit)
character(CharClassDigit)
})->to_string()));
};

View file

@ -44,7 +44,7 @@ Describe(Rules) {
}
It(handles_character_classes) {
auto rule = rules::char_class(rules::CharClassTypeDigit);
auto rule = rules::character(CharClassDigit);
AssertThat(
rules::transitions(rule),
Equals(transition_map<rules::Rule, rules::Rule>({