Основные идентификаторы
В своем обновлении вопроса вы предлагаете: {letter}({underscore}?{letter_or_digit})*
.Это именно то, что спецификация VHDL предлагает для выражения.Стоит также отметить, что базовые идентификаторы не чувствительны к регистру .То есть id
и ID
обрабатываются так, как если бы они были одним и тем же идентификатором.
Расширенные идентификаторы
Однако в VHDL также существуют расширенные идентификаторы.Достойным регулярным выражением для них будет:
({backslash}{Any ISO 8859-1 except backslash}*{backslash})+
Зарезервированные слова
Также обратите внимание, что следующие идентификаторы не обрабатываются традиционно, а вместо этого являются зарезервированными словами: Это списокот спецификации 2002 года.В зависимости от версии спецификации, которую вы реализуете, может быть больше или меньше зарезервированных слов .
abs access after alias all and architecture array assert attribute begin block
body buffer bus case component configuration constant disconnect downto else
elsif end entity exit file for function generate generic group guarded if
impure in inertial inout is label library linkage literal loop map mod nand
new next nor not null of on open or others out package port postponed
procedural procedure process protected pure range record reference register
reject rem report return rol ror select severity shared signal sla sll sra srl
subtype then to transport type unaffected units until use variable wait when
while with xnor xor
Буквы
Стоит также отметить, что в VHDL [A-Za-z]
не все буквы в алфавите.Вы также должны включить латинские символы ISO 8859-1.Вы можете найти больше информации об этих символах здесь .
Но, как говорится, вот заглавные буквы:
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
А вот дополнительныестрочные буквы:
à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ