VASG Issue Number: 0003 Comment Author: Paul Menchini Comment Number: 01 Comment Date: 1991/03/14 Erich informs me that the resolution to this issue is not what was intended, either in 7.2, or in 1076-1987. The quoted sentence from Section 13.2 is a holdover from Ada, and is intended to ensure that e.g., "x1234" is treated as one identifier and not an identifier followed by an integer. The quoted sentence establishes four cases: 1. identifier followed by identifier; 2. identifier followed by numeric literal; 3. numeric literal followed by numeric literal; 4. numeric literal followed by identifier; Case 4 never occurs in Ada. The only case in Ada where a group of digits can precede a letter is in the case of numeric literals with an exponent; there, of course, no separator is allowed. Unlike Ada, VHDL has physical literals, where an identifier can follow a number. While it is true that a naive lexer can be confused by "10E", where E is a physical literal, such naive lexers are insufficient to process VHDL, even if this requirement is imposed. VHDL lexers must distinguish between character literals and apostrophes; e.g., between 'A' and A'B'C. (A character literal is a single token, while an apostrophe is also a token in its own right.) The same lookahead required to distinguish between character literals and apostrophes can be used to distinguish between "10E" and "10E4". (Note that Ada does not suffer from this problem either, since Ada has only predefined attributes, none of which have single-character names.) Thus I think it reasonable to relax this restriction.