mach icon indicating copy to clipboard operation
mach copied to clipboard

Various fixes for hexadecimal numbers in shaders

Open msg-programs opened this issue 11 months ago • 0 comments

  • [x] By selecting this checkbox, I agree to license my contributions to this project under the license(s) described in the LICENSE file, and I have the right to do so or have received permission to do so by an employer or client I am producing work for whom has this right.

Fixes the issues described in #1340:

  • F inside a hexadecimal number classified as identifier
  • f inside a hexadecimal number causes "float literals not implemented" error
  • e/E inside a hexadecimal number cause either "float literals not implemented" or "duplicate exponent" error

Also adds/changes some error messages:

  • Adds "hexadecimal exponent in decimal float" when finding p/P outside a number starting with 0x
  • Adds "incomplete exponent" when finding p/P/e/E at the end of a number literal
  • Clarifies "suffix '{c}' on float literal" --> "int suffix '{c}' on float literal"

The implementation seems a bit heavy-handed and I'm not 100% sure to have caught all edge cases despite testing, so I'm open for any feedback and changes.

msg-programs avatar Feb 08 '25 11:02 msg-programs