Yours had some problems with real at end of list
which one exactly? "-1.18E - 38" is not a valid literal (the compiler recognize that as
"-unary 1.18Einvalid -operator38int")
EDIT: just some more stuff you latest code wrongly interpret:
- "0x" is accepted
- "0x.0p0" is not accepted (as said, when targeting C++ this format is not required)
- "0x123fff.ffa
e+23" is accepted
- suffix "i9" for integers is accepted
- ".9u" is accepted (invalid FP suffix)
- ".E-1" is accepted (at least on digit is required for the mantissa)