cargo-expand
astexplorer
cargo-expand | astexplorer | |
---|---|---|
16 | 43 | |
2,435 | 5,953 | |
- | - | |
9.0 | 6.0 | |
14 days ago | 7 days ago | |
Rust | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cargo-expand
-
What is Rust doing behind the scenes?
It's been superseded by https://github.com/dtolnay/cargo-expand
-
Why dereferencing coercion is not used here?
Try installing cargo expand, it's useful to see how macros eventually get expanded. For example, if you run cargo expand on the following code
-
Procedural Macros are really hard to understand
You can use cargo expand to see what your code expands to: https://github.com/dtolnay/cargo-expand
-
[blog] Rust should own its debugger experience
Not too familiar with macros but does cargo-expand do what you want or did you mean something else?
-
Help me understand the borrowing and moving variable concept!
Yes. You can use Tools > Expand Macro on the playground or install and run cargo-expand to see what the macro expands to. It just adds a & before the argument.
- Advanced Metaprogramming in C: A select statement
-
How does declaring variables in macros work
cargo expand
-
How to see macro's source code in crate?
Along with what others are saying, there is also cargo expand which can show you what code a macro generates
-
How does Rust Python ffi work?
Something that may help you understand code with magic proc macros is this utility. It's basically a wrapper around a Rust compiler flag that allows you to expand macros for a file.
-
How does libtest know which functions are marked with #[test]?
You can use https://github.com/dtolnay/cargo-expand to examine how it works.
astexplorer
-
Understanding Code Structure: A Beginner's Guide to Tree-sitter
You can play with your code here, and visualise ASTs for the same.
-
What is an Abstract Syntax Tree in Programming?
Website
-
How to create your own Eslint rule with tests, boosting the DX, and code-review
To understand this syntax, I recommend exploring AST Explorer. You will have a better view of how the AST of JavaScript works and how to correlate it with the Eslint syntaxy:
-
Programming from Top to Bottom - Parsing
You can never mistake type_declaration with an identifier, otherwise the program will not work. Aside from that constraint, you are free to name them whatever you like, there is no one standard, and each parser has it own naming conventions, unless you are planning to use something like LLVM. If you are interested, you can see examples of naming in different language parsers in the AST Explorer.
-
ESLint: under the hood
The rule that I want to write will be called not-allows-underscore: the idea is to abolish the use of underscores when declaring variables or functions. It's a real dummy rule, but it should be enough to see in action the concepts that we have discussed earlier. The first thing that I would do is to go to AST Explorer, write down a code that declares variables and functions (both standard and arrows one) and take a look at what type of node is the one that encodes the identifier. Doing that, I found out that the node type of my interest is Identifier, what a surprise! 🤣. In particular, the structure of the node holds the string used as identifier in the name property.
-
😱 ESlint over Conventions - You have Not unlocked the power of ESlint 😱
All the information about the API, AST node names, AST Explorer, etc. you can read in the official documentation. I’m just going to show examples of how to automate the check-up of our created conventions.
- AST Exploret
-
200 Web-Based, Must-Try Web Design and Development Tools
AST Viewer
-
Building a JSON Parser from scratch with JS 🤯
If you want to see how the AST of popular languages looks, I recommend the AST Explorer. It supports various languages, and you can view the complete AST and navigate through the nodes. If you want to go further, you can try to copy some logic from an existing parser and implement it in your own, such as calculating an expression according to precedence order, for example: 1 + 2 * 3 (which is 7, not 9).
-
Creating my own typescript compiler
https://astexplorer.net/ is a good resource/playground for understanding ASTs and transpilers.
What are some alternatives?
saito-rust - A high-performance (reference) implementation of Saito in Rust
deno_swc - The SWC compiler for Deno.
proc-macro-workshop - Learn to write Rust procedural macros  [Rust Latam conference, Montevideo Uruguay, March 2019]
gogocode - GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.
lol-html - Low output latency streaming HTML parser/rewriter with CSS selector-based API
vscode-language-tree - VSCode tree format support
rust - Empowering everyone to build reliable and efficient software.
ChakraCore - ChakraCore is an open source Javascript engine with a C API.
quote - Rust quasi-quoting
Acorn - A small, fast, JavaScript-based JavaScript parser
cargo-llvm-cov - Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).
proposal-type-annotations - ECMAScript proposal for type syntax that is erased - Stage 1