Cat Progress: Reflection of C# Classes
The newest Cat version is almost ready to be shared. I’ve completely rewritten the parser to use a new PEG (Parsing Expression Grammar) parsing library that I’ve designed. I’ve also made some major changes to how primitive instructions are implemented. You can now simply write:
scope.RegisterType(typeof(GraphWindow));
to register all methods of a given type. This will make it a breeze for people to add Cat scripting capabilities to their C# applications. This also makes the current interpreter implementation much cleaner and elegant.
I’ve decided that the main Cat implementation is going to be no longer cross-platform in order to speed up development and make the implementation more feature-rich. Writing cross-platform code is like handcuffing your arms behind your back and coding with only your nose. It’s possible, but slow and frustrating.
Cat as a language will be easily implemented in Mono (at least the Level 0 and Level 1 specifications will be) but I will divest myself of the responsibility for maintaining cross-platform support. Part of the reason, being that I lack the resources to do so.Â
Hopefully when version 1.0 of the Cat interpreter for Windows is ready along with the specification draft, others will be sufficiently inspired to launch their own independant Cat implementations. If other people are interested in making their own implementations, let me know if I can help out in anyway.