Skip to content

Research on Packrat-parser for rewriting the requisite parser #146

Description

@mikehquan19

Overview

We will attempt to rewrite the requisite parser so the code will be more manageable and easier to debug in the future.

We look into top-down Packrat parser as a potential alternative to the bottom-up parser that we are having now.

@Yogeb-tech found that there's a library https://github.com/launix-de/go-packrat, so we may not need to implement the algorithm from scratch.

We will attempt to write a proof of concept for that.

Note

This is likely going to be a series of issues in the future that go from writing the foundational code to improving it to be fully functional.

Activity

  1. added
    Type: InternalChore tasks that are needed for other features
    L2A task suitable for someone who is comfortable helping with implementing features.
    on Mar 27, 2026
  2. justinschwerdtfeger commented on Sep 24, 2026

    @justinschwerdtfeger
    Contributor

    @Yogeb-tech do you want to be unnassigned from this? You mentioned in #164 that you wanted to take a break

  3. Yogeb-tech commented on Sep 24, 2026

    @Yogeb-tech
    Contributor

    @justinschwerdtfeger
    Yes I would like to be unassigned. We could close this issue and make a new issue focusing on building off the current draft I have. So far, my packrat parsing implementation doesn't handle parentheses, so it should only focus on 2–3 functions that currently use recursion instead. I'm down to write the issue if you approve.

    Additionally I will fix merge conflicts this week before writing said issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

L2A task suitable for someone who is comfortable helping with implementing features.Type: InternalChore tasks that are needed for other features

Fields

Priority

None yet

Effort

None yet

Target Date

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions