Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 abstract-syntax-tree Open-Source Projects
-
JavaParser
Java 1-17 Parser and Abstract Syntax Tree for Java with advanced analysis functionalities.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Spoon
Spoon is a metaprogramming library to analyze and transform Java source code. :spoon: is made with :heart:, :beers: and :sparkles:. It parses source files to build a well-designed AST with powerful analysis and transformation API.
-
rickroll-lang
The Rick Roll programming language is a rickroll based, process oriented, dynamic, strong, esoteric programming language. All of the keywords/statements are from Rick Astley's lyrics. Check our tutorial site, https://rick-lang.github.io/programming-language-explainer/
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
fccf
fccf: A command-line tool that quickly searches through C/C++ source code in a directory based on a search string and prints relevant code snippets that match the query.
-
error-prone-support
Error Prone extensions: extra bug checkers and a large battery of Refaster rules.
-
codeparser
Parse Wolfram Language source code as abstract syntax trees (ASTs) or concrete syntax trees (CSTs)
-
semantic-analyzer-rs
Semantic analyzer library for compilers written in Rust for semantic analysis of programming languages AST
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Spoon
I'm not familiar with Pijul, and haven't finished watching this presentation, but IME the problems with modern version control tools is that they still rely on comparing lines of plain text, something we've been doing for decades. Merge conflicts are an issue because our tools are agnostic about the actual content they're tracking.
Instead, the tools should be smarter and work on the level of functions, classes, packages, sentences, paragraphs, or whatever primitive makes sense for the project and file that is being changed. In the case of code bases, they need to be aware of the language and the AST of the program. For binary files, they need to be aware of the file format and its binary structure. This would allow them to show actually meaningful diffs, and minimize the chances of conflicts, and of producing a corrupt file after an automatic merge.
There has been some research in this area, and there are a few semantic diffing tools[1,2,3], but I'm not aware of this being widely used in any VCS.
Nowadays, with all the machine learning advances, the ideal VCS should also use ML to understand the change at a deeper level, and maybe even suggest improvements. If AI can write code for me, it could surely understand what I'm trying to do, and help me so that version control is entirely hands-free, instead of having to fight with it, and be constantly aware of it, as I have to do now.
I just finished watching the presentation, and Pijul seems like an iterative improvement over Git. Nothing jumped out at me like a killer feature that would make me want to give it a try. It might be because the author focuses too much on technical details, instead of taking a step back and rethinking what a modern VCS tool should look like today.
[1]: https://semanticdiff.com/
[2]: https://github.com/trailofbits/graphtage
[3]: https://github.com/GumTreeDiff/gumtree
> has had any ability to tell me where, how often, or even whether a particular component is in use in the production UI
I built a dashboard to display this for the design system I work on at my day job to give product designers better visibility into this, using a library called react-scanner[0] and some logic related to the way our different product repos are structured. there are probably other libraries for this sort of thing in different ecosystems, and you can always build your own with a parser as well.
[0] https://github.com/moroshko/react-scanner
Project mention: Vermin: Concurrently detect the minimum Python versions needed to run code | news.ycombinator.com | 2024-01-12
Project mention: Letlang — Roadblocks and how to overcome them - My programming language targeting Rust | /r/rust | 2023-06-07Rust is a very nice langage for implementing compilers, and has a nice ecosystem for it (logos, rust-peg, lalrpop, astmaker -- this one is mine --, etc...).
Project mention: The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica | news.ycombinator.com | 2024-01-12
Project mention: Show HN: DotLottie Player – A New Universal Lottie Player Built with Rust | news.ycombinator.com | 2024-04-04The current release supports >95% of the animations on our community contributed free animations library. No changes required! We open-sourced a tool called relottie ((https://github.com/LottieFiles/relottie) to detect unsupported features in a Lottie for this player (and other players) to help folks build a validation step in their CI/CD.
We are making frequent contributions and releases on ThorVG and dotlottie-rs to get to 100% support!
Project mention: Custom Semantic Analyzer library written Rust lang | news.ycombinator.com | 2023-12-21
abstract-syntax-tree related posts
- Custom Semantic Analyzer library written Rust lang
- OpenRewrite – Automated mass refactoring of source code
- We already have Spring 2.1.3, Is SpringBoot 3 worth learning.
- Why wouldn't somebody change their version?
- Any ideas on how to automate upgrade of legacy Spring Framework/Spring Boot repositories?
- Refactoring giant codebase
- What are your thoughts on Spring in 2023?
-
A note from our sponsor - InfluxDB
www.influxdata.com | 23 Apr 2024
Index
What are some of the best open-source abstract-syntax-tree projects? This list will help you:
Project | Stars | |
---|---|---|
1 | JavaParser | 5,211 |
2 | pyt | 2,161 |
3 | rewrite | 1,819 |
4 | Spoon | 1,663 |
5 | gumtree | 857 |
6 | rickroll-lang | 736 |
7 | bnfc | 564 |
8 | react-scanner | 555 |
9 | vermin | 424 |
10 | pytago | 371 |
11 | fccf | 345 |
12 | vscode-blockman | 341 |
13 | react-ast | 311 |
14 | error-prone-support | 166 |
15 | astmaker | 119 |
16 | codeparser | 115 |
17 | bor | 107 |
18 | Keval | 99 |
19 | ravi-compiler | 63 |
20 | relottie | 38 |
21 | semantic-analyzer-rs | 32 |
22 | typeless | 17 |
23 | jarvis | 16 |
Sponsored