Лексическая грамматика

редактировать

В информатике, лексическая грамматика - это формальная грамматика, определяющая синтаксис для токенов. Программа написана с использованием символов, которые определяются лексической структурой используемого языка. Набор символов эквивалентен алфавиту, используемому в любом письменном языке. Лексическая грамматика устанавливает правила, определяющие, как последовательность символов делится на подпоследовательности символов, каждая часть которых представляет отдельный токен. Это часто определяется в терминах регулярных выражений.

. Например, лексическая грамматика для многих языков программирования указывает, что строковый литерал начинается с символа "и продолжается до найдено соответствие "(экранирование усложняет задачу), что идентификатор представляет собой буквенно-цифровую последовательность (буквы и цифры, обычно также допускающие подчеркивание, и запрещая начальные цифры), и что целочисленный литерал представляет собой последовательность цифр. Таким образом, в следующей последовательности символов «abc» xyz1 23 маркерами являются строка, идентификатор и номер (плюс маркеры пробелов), потому что пробел завершает последовательность символов, образующих идентификатор. Кроме того, определенные последовательности классифицируются как ключевые слова - они обычно имеют ту же форму, что и идентификаторы (обычно буквенные слова), но относятся к категории отдельно; формально они имеют другой тип токена.

Содержание
  • 1 Примеры
  • 2 См. также
  • 3 Ссылки
  • 4 Внешние ссылки
Примеры

Регулярные выражения для общих лексических правил следовать (например, C).

Строковый литерал без экранирования (кавычки, за которыми следуют не-кавычки, заканчиваются кавычками):

"[^"] * "

Строковый литерал без экранирования (кавычка, за которой следует экранированными символами или без кавычек, заканчивающимися кавычками):

"(\. | [^ \"]) * "

Целочисленный литерал:

[0 -9] +

Десятичный целочисленный литерал (без нуля в начале):

[1-9] [0-9] * | 0

Шестнадцатеричный целочисленный литерал:

0 [Xx] [0-9A-Fa-f] +

Восьмеричный целочисленный литерал:

0 [0-7] +

Идентификатор:

[A-Za-z _ $] [A-Za-z0-9 _ $] *
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-27 07:36:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте