I'm a student trying to get deeper into compiler design and language tooling in Rust. As a learning project, I built a complete linter for LOLCODE, because when you need something simple enough to implement from scratch without getting lost in complexity, you naturally pick the most reasonable language available /s
The project includes:
• Handwritten lexer (character-by-character, no regex)
• Recursive descent parser that builds an AST
• Single-pass semantic analyzer
• Variable tracking across scopes
• Position tracking for precise error messages
I avoided parser generators on purpose because I wanted to understand the full pipeline end to end.
What I'd appreciate feedback on:
• Does the parser and AST structure make sense?
• Are there obvious Rust mistakes or things that could be written more idiomatically?
• Any architectural improvements you'd make?
• General feedback on the approach
GitHub
It's also on crates.io and the AUR if you want to try it.
Feel free to contribute :) (for whatever reason)
TL;DR:
Built a LOLCODE linter in Rust . Looking for feedback on the parser/AST design.
jerankda•46m ago
I'm a student trying to get deeper into compiler design and language tooling in Rust. As a learning project, I built a complete linter for LOLCODE, because when you need something simple enough to implement from scratch without getting lost in complexity, you naturally pick the most reasonable language available /s
The project includes: • Handwritten lexer (character-by-character, no regex) • Recursive descent parser that builds an AST • Single-pass semantic analyzer • Variable tracking across scopes • Position tracking for precise error messages
I avoided parser generators on purpose because I wanted to understand the full pipeline end to end.
What I'd appreciate feedback on: • Does the parser and AST structure make sense? • Are there obvious Rust mistakes or things that could be written more idiomatically? • Any architectural improvements you'd make? • General feedback on the approach
GitHub
It's also on crates.io and the AUR if you want to try it.
Feel free to contribute :) (for whatever reason)
TL;DR:
Built a LOLCODE linter in Rust . Looking for feedback on the parser/AST design.
KTHXBYE