Building a refactoring tool and LSP implementation for Jasmin/Krakatau

  softwareengineering

I want to develop a refactoring tool and Language Server Protocol (LSP) implementation for the Jasmin and Krakatau programming languages, which are used for working with Java bytecode. I’m struggling to visualize the overall approach and identify the necessary techniques for building such a tool from scratch.
These languages are relatively niche and lack an established ecosystem, so there aren’t many existing resources or libraries to leverage. Making an error tolerant parser seems easy, but I am not really sure how the AST should look like, should it contain indices of where the symbols are located? (path,line,offset)?
My main challenge is figuring out the best practices and recommended techniques for tackling this problem.

Are there any language agnostic libraries that try to handle this, I know I am asking for krakatau, but I’d assume this problem is relatively common, so maybe developers try to avoid doing this work for every language.
What are some effective strategies or frameworks I should consider for designing an AST, implementing symbol resolution and refactoring rules, and creating an LSP server from scratch? Has anyone had experience with this?

New contributor

Rainb is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.

LEAVE A COMMENT