Separate auxiliary rules from user-specified rules
This commit is contained in:
parent
19e5b2a563
commit
fd0d77ef8b
16 changed files with 741 additions and 412 deletions
|
|
@ -16,16 +16,17 @@ describe("expanding repeat rules in a grammar", []() {
|
|||
}) },
|
||||
}));
|
||||
|
||||
AssertThat(result, Equals(Grammar({
|
||||
AssertThat(result, Equals(Grammar("rule1", {
|
||||
{ "rule1", seq({
|
||||
sym("x"),
|
||||
sym("repeat_helper1"),
|
||||
aux_sym("repeat_helper1"),
|
||||
sym("y")
|
||||
}) },
|
||||
}, {
|
||||
{ "repeat_helper1", seq({
|
||||
seq({ sym("a"), sym("b") }),
|
||||
choice({
|
||||
sym("repeat_helper1") ,
|
||||
aux_sym("repeat_helper1") ,
|
||||
blank()
|
||||
}),
|
||||
}) }
|
||||
|
|
|
|||
|
|
@ -22,15 +22,15 @@ describe("preparing a grammar", []() {
|
|||
|
||||
AssertThat(result.first, Equals(Grammar({
|
||||
{ "rule1", seq({
|
||||
sym("1"),
|
||||
aux_sym("token1"),
|
||||
seq({
|
||||
sym("rule2"),
|
||||
sym("rule3") }),
|
||||
sym("1") }) }
|
||||
aux_sym("token1") }) }
|
||||
})));
|
||||
|
||||
AssertThat(result.second, Equals(Grammar("", {
|
||||
{ "1", rules::seq({
|
||||
AssertThat(result.second, Equals(Grammar("", {}, {
|
||||
{ "token1", rules::seq({
|
||||
rules::character('a'),
|
||||
rules::character('b') }) },
|
||||
})));
|
||||
|
|
@ -68,14 +68,14 @@ describe("preparing a grammar", []() {
|
|||
AssertThat(result.first, Equals(Grammar({
|
||||
{ "rule1", seq({
|
||||
choice({
|
||||
repeat(choice({ sym("1"), sym("a") })),
|
||||
repeat(choice({ aux_sym("token1"), sym("a") })),
|
||||
sym("b"),
|
||||
}),
|
||||
sym("c") }) }
|
||||
})));
|
||||
|
||||
AssertThat(result.second, Equals(Grammar("", {
|
||||
{ "1", str("stuff") },
|
||||
AssertThat(result.second, Equals(Grammar("", {}, {
|
||||
{ "token1", str("stuff") },
|
||||
})));
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue