5. This will be worked on a feature branch `dev-new-parser`, so it should
not affect `main` until its incorporation.


On Tue, Feb 27, 2024 at 12:32 PM Toshiya Kobayashi <
[email protected]> wrote:

> Hi,
>
> The current DRL parser is Antlr3 based and contains lots of hard-coded
> logic in generated java codes, so it's hard to maintain.
>
> for example)
>
> https://github.com/apache/incubator-kie-drools/blame/main/drools-drl/drools-drl-parser/src/main/java/org/drools/drl/parser/lang/DRL6Parser.java
>
> The proposal is to develop a new DRL parser based on Antlr4, which has
> Visior and Listener support, so the parser would have cleaner separation
> between parser syntax and Java code.
>
> 1. This doesn't target v10.0 release. Fixing all issues keeping backward
> compatibility is a large effort. I don't expect that we can complete it
> within a month. Even if we can do it more quickly, I don't want to disrupt
> the v10.0 release, so the incorporation would be post v10.0.
>
> 2. The goal of this change is just for code maintainability (e.g. easy to
> extend DRL syntax in the future). This is an implementation detail, so
> should not impact users.
>
> 3. Regarding stability, this is something to be discussed further, but
> personally I guess we will keep both old and new parsers until we are
> confident that the new parser has matured. During the time, we would have
> the complexity, but users can switch back to the old parser when there is
> an issue with a new parser.
>
> 4. As a bonus, `antlr4-c3` would help to develop DRL code completion for
> LSP (Language Server Protocol), but it's not a direct scope of this
> proposal.
>
> Feel free to share your thoughts.
>
> Thanks!
> Toshiya
>

Reply via email to