A GML parser/lexer addon for Catspeak! (Experimental currently!!!)
- While loops
- For loops
- Repeat loops
- Comment blocks (every developers favourite
/* Secret little message */
) - Almost every single constant and dynamic constant GML has to offer.
- with() support (via Catspeak)
- do/until loops
- automatic methodizing of functions (respects the caller scope)
- Switch/case (as oppose to match/case)
- Nullish coalescing operator
valueA ?? valueB
and tenary operatorvalue == otherValue ? valueA : valueB
support - Unlimited non-named Arguments (via Catspeak)
- Accessors
- The ability to allow writing to specific IO/room properties
- methods with "global" scope self assign as "undefined" instead.
- Macros (Doable, but complicates any and all code caches, so won't be a core feature of GMLspeak. I may leave a note on how to achieve it.)
- Adding all GML functions (I'm happy to provide constants, but not GML functions. You can expose those yourself.)
- Static variables (Very complicated, not dealing with that)
- Global Catspeak functions (Doable but requires a whole separate system for checking every single GML string before passing to GMLspeak, compiling them in order of first usage, and then compiling the rest. Probably best for a separate library that utilises GMLspeak + Catspeak as a dependency)
- Enums (would be nice, complicated to support. Similar issue with global Catspeak functions)
- Rollback constants (Beta only anyway, so why?)
This does support a majority of constants, between LTS to latest. Ensuring that regardless of the version use, you will have most of them.