The C++ standard ISO/IEC 14882 specifies pp-numbers as follow:
pp-number:
digit
.digit
pp-number digit
pp-number nondigit
pp-number e sign
pp-number E sign
pp-number .
To me this definition appears too liberal, for example following this
production rule and using left recursion i can even write:
pp-number
=> pp-number E sign
=> pp-number e sign E sign
=> pp-number . e sign E sign
=> .digit . e sign E sign
that, if i'm right, doesn't mean anything. Now my question is, what exactly
are these pp-numbers? Please, can you show me a concrete example? What are
they used for? Why the production rule allow to construct almost anything,
including senseless tokens?
Greetings.