Есть шесть классов лексем: идентификаторы, ключевые слова, константы, строки, операторы и прочие разделители. Символы пробела, табуляции и новой строки, а также комментарии (собирательно - "белые места"), как описано ниже, игнорируются, за исключением тех случаев, когда они служат разделителями лексем. Некое пустое место необходимо для разделения идентификаторов, ключевых слов и констант, которые в противном случае окажутся соприкасающимися.
Если входной поток разобран на лексемы до данного символа, принимается, что следующая лексема содержит наиболее длинную строку символов из тех, что могут составить лексему.
Комментарии
Символы /* задают начало комментария, заканчивающегося символами */. Комментарии не могут быть вложенными. Символы // начинают комментарий, который заканчивается в конце строки, на которой они появились.
Идентификаторы (имена)
Идентификатор - последовательность букв и цифр произвольной длины; первый символ обязан быть буквой; подчерк "_" считается за букву; буквы в верхнем и нижнем регистрах являются различными.
Ключевые слова
Следующие идентификаторы зарезервированы для использования в качестве ключевых слов и не могут использоваться иным образом:
asm | auto | break | case | char | class | const | continue | default | delete | do | double | else | enum | extern | float | for | friend | goto | if | inline | int | long | new | operator | overload | public | register | return | short | sizeof | static | struct | switch | this | typedef | union | unsigned | virtual | void | while |
Идентификаторы signed и volatile зарезервированы для применения в будущем.
1 2 3
8 8 8
| |