diff --git a/NEWS.md b/NEWS.md index 0af278fc..397742d2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,49 @@ # NEWS for Lrama +## Lrama 0.6.1 (2024-xx-xx) + +### Nested parameterizing rules + +Allow to pass an instantiated rule to other parameterizing rules. + +``` +%rule constant(X) : X + ; + +%rule option(Y) : /* empty */ + | Y + ; + +%% + +program : option(constant(number)) // Nested rule + ; +%% +``` + +Allow to use nested parameterizing rules when define parameterizing rules. + +``` +%rule option(x) : /* empty */ + | X + ; + +%rule double(Y) : Y Y + ; + +%rule double_opt(A) : option(double(A)) // Nested rule + ; + +%% + +program : double_opt(number) + ; + +%% +``` + +https://github.com/ruby/lrama/pull/337 + ## Lrama 0.6.0 (2023-12-25) ### User defined parameterizing rules @@ -20,6 +64,8 @@ stmt: pair(ODD, EVEN) ; ``` +https://github.com/ruby/lrama/pull/285 + ## Lrama 0.5.11 (2023-12-02) ### Type specification of parameterizing rules