Working implementation
As requested, I am letting you know that I have a (supposedly) working implementation in C# & VB.NET at this repo. People should feel free to give it a run and file issues if there're any bugs.
Thanks @apbendi for coming up with this! I've used it as a teaching tool for a couple of years now and it always suits the purpose well.
hey @wessupermare! This is amazing. Thank you so much for sharing this! It's so heartening to hear you've been using this for teaching. May I ask the context in which you've been doing so?
This is motivating me to get this repo updated to the latest version of Swift. I will include your implementations in the README when I do. Thanks so much again :)
Certainly! I'm an officer at my University's computing club, and I've used your SwiftCon talk and this repo to point people at when they want to learn the basics of writing compilers. Considering the compilers course at our Uni is mostly theoretical, there are quite a few interested people. With your permission, I'd love to use your work and this repo to run a basic compiler creation workshop at my Uni. Would that be okay?
hey @wessupermare, first of all, to answer your question, yes! Absolutely. You're more than welcome to use this for a workshop. It was my sincere hope when I created this that folks would use it as an educational resource.
Secondly, I just merged a PR updating this project to work with the latest versions of Swift & Xcode. I also updated the README's to include your version. I'm not too familiar with the .NET ecosystem, but I know it can now run on Mac & Linux, right? I'd love to compile and run your versions— any chance you'd be willing to provide some basic instructions on how to do so?
Finally, if your workshop is recorded, or there are any materials which you decide to publish related to it, please share them with me. Thanks!
Sounds good! Unfortunately this was written in an old version of dotnet that doesn't support anything other than Windows. On Windows, it just needs Visual Studio (I think 2019? Haven't worked on it in a while) installed. Open the *.sln file and run whichever version you want. It'll compile to the bin folder for whatever release configuration is selected.