Лексическая грамматика - Lexical grammar
В Информатика, а лексическая грамматика это формальная грамматика определение синтаксис из жетоны. Программа написана с использованием символов, которые определяются лексической структурой используемого языка. Набор символов эквивалентен алфавиту, используемому в любом письменном языке. Лексическая грамматика устанавливает правила, определяющие, как последовательность символов делится на подпоследовательности символов, каждая часть которых представляет отдельный токен. Это часто определяется в терминах обычные выражения.[1]
Например, лексическая грамматика для многих языки программирования указывает, что строковый литерал начинается с " символ и продолжается до совпадения " находится (побег усложняет задачу), что идентификатор является буквенно-цифровой последовательность (буквы и цифры, обычно также допускающие подчеркивание и запрещающие начальные цифры), и что целочисленный литерал представляет собой последовательность цифр. Итак, в следующей последовательности символов "abc" xyz1 23 жетоны нить, идентификатор и номер (плюс пробелы), потому что пробел завершает последовательность символов, образующих идентификатор. Кроме того, определенные последовательности классифицируются как ключевые слова - они обычно имеют ту же форму, что и идентификаторы (обычно буквенные слова), но классифицируются отдельно; формально у них другой тип токена.[2]
Примеры
Далее следуют регулярные выражения для общих лексических правил (например, C).
Неэкранированный строковый литерал (кавычки, за которыми следуют не кавычки, заканчивающиеся кавычкой):
"[^"]*"
Экранированный строковый литерал (кавычка, за которой следуют экранированные символы или не-кавычки, заканчивающиеся кавычкой):
"(.|[^"])*"
Целочисленный литерал:
[0-9]+
Десятичный целочисленный литерал (без нуля в начале):
[1-9][0-9]*|0
Шестнадцатеричный целочисленный литерал:
0 [Xx] [0-9A-Fa-f] +
Восьмеричный целочисленный литерал:
0[0-7]+
Идентификатор:
[A-Za-z _ $] [A-Za-z0-9 _ $] *
Смотрите также
Рекомендации
- ^ Буйя (2009). Объектно-ориентированное программирование на Java: основы и приложения. Тата Макгроу-Хилл Образование. С. 57–. ISBN 978-0-07-066908-6.
- ^ Джеймс Гослинг (2000). Спецификация языка Java. Эддисон-Уэсли Профессионал. С. 9–. ISBN 978-0-201-31008-5.