Migration away from JavaCC

Open
#3,752 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Stale
Tech stack
java
Domain
compilers

Research direction

Start by locating the repository's JavaCC-based parser generators and documenting which Java grammars and actions depend on them. Compare the mentioned parsers.org project and ANTLR, then define what a viable migration would need to cover. Done means the project has an agreed replacement and migration scope, not merely an investigation.

Written by the indexing model from the issue text.

Description

Right now most of our parser generator needs that are associated with Java projects go through JavaCC: https://github.com/javacc/javacc

JavaCC does not support Java 8 syntax in actions, let alone Java 11, Java 14, or Java 17: https://github.com/javacc/javacc/issues/258

This is increasingly becoming an issue. It doesn't appear that the maintainers of JavaCC have any interest in updating it, and I have now been repeatedly frustrated by the limitations of the grammar of JavaCC rejecting valid Java code.

The issue I linked refers us to this project: https://parsers.org/

This is worth a try, but it also ignores the elephant in the room: ANTLR

We should investigate migrating away from JavaCC so as to not have to deal with the problems associated with it not being actively maintained.

Dominant language
Python
Stars
591
Forks
163
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from runtimeverification/k

All issues in runtimeverification/k

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.