https://craftinginterpreters.com should do the trick. Make sure you ain't just blindly copying code, though.