I am writing a ST compiler when I have a chance. It is on my bucket list. I try to keep current on this topic and I do have the specification, I think.
Yes, eventually. I am following the specification pretty strictly. I think the only deviance is that one may use // in addition to (* *) for comments. The new version should have better error reporting and compile faster and execute faster.
I can add a lot of those proposals in the pdf easily. UNION would be easy. I like the _TO_INT feature for converting anything to INT. As it is each conversion like DINT_TO_REAL etc needs to be handled as a built in function. I don't want to actually call a function but do the conversion in-line. Often nothing needs to be done except change the type of the variable.
I don't like the idea of pointers because someone can crash the system with them. We automatically do range checking on array indexes just because we don't want the user to crash the system so we have a range fault check that will shut down the axes if a fault occurs.
Even though I now support REPEAT, WHILE and FOR i doubt those will be implemented because they can cause infinite loops. I could add a check to make sure the loop isn't taking to long but how long is too long?
I will leave out string and character handling for sure because motion controllers shouldn't be doing that kind of stuff. That is what HMIs are for.
I can't add anything that will allow the user to interfere with the motion control.