Giter Club home page Giter Club logo

juliasyntax.jl's Introduction

JuliaSyntax

Build Status codecov.io

A Julia compiler frontend, written in Julia.

Read the documentation for more information.

Status

JuliaSyntax.jl is used as the new default Julia parser in Julia 1.10. It's highly compatible with Julia's older femtolisp-based parser - It parses all of Base, the standard libraries and General registry. Some minor difference remain where we've decided to fix bugs or strange behaviors in the reference parser.

The AST and tree data structures are usable but their APIs will evolve as we try out various use cases. Parsing to the standard Expr AST is always possible and will be stable.

The intention is to extend this library over time to cover more of the Julia compiler frontend.

Getting involved

For people who want to help improve Julia's error messages by contributing to JuliaSyntax, I'd suggest looking through the issue list at https://github.com/JuliaLang/JuliaSyntax.jl/issues and choosing a small issue or two to work on to familiarize yourself with the code. Anything marked with the labels intro issue or bug might be a good place to start.

Also watching the 2022 JuliaCon talk and reading the design and reference documentation should be good for an overview.

As of May 2023, we've got really good positional tracking within the source, but JuliaSyntax really needs a better system for parser recovery before the errors are really nice. This requires some research. For example, you could read up on how rust-analyzer does recovery, or rslint - both these are event-based recursive decent parsers with similar structure to JuliaSyntax (though in Rust). I also want to investigate whether we can do data-driven parser recovery using an ML technique. But again, this is a research project.

juliasyntax.jl's People

Contributors

c42f avatar kristofferc avatar pfitzseb avatar zacln avatar timholy avatar keno avatar lilithhafner avatar liozou avatar aviatesk avatar bicycle1885 avatar ndinsmore avatar m-j-w avatar janebert avatar github-actions[bot] avatar sunxd3 avatar waldyrious avatar simeonschaub avatar savq avatar o314 avatar michaelhatherly avatar goretkin avatar filtron avatar iamed2 avatar staticfloat avatar davidanthoff avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.