среда, 3 февраля 2021 г.

Модули в Golang: файл go.mod, лексические элементы

При анализе файла go.mod его содержимое разбивается на последовательность токенов. Есть несколько видов токенов: пробелы, комментарии, знаки препинания, ключевые слова, идентификаторы и строки.

Пробел состоит из пробелов (U+0020), табуляции (U+0009), возврата каретки (U+000D) и новой строки (U+000A). Символы пробела, отличные от символов новой строки, не действуют, за исключением отдельных токенов, которые в противном случае были бы объединены. Новые строки - важные токены.

Комментарии начинаются с // и заканчиваются до конца строки. /* */ комментарии не допускаются.

Знаки пунктуации включают (, ), и =>.

Ключевые слова различают различные типы директив в файле go.mod. Допустимые ключевые слова: module, go, require, replace и exclude.

Идентификаторы - это последовательности непробельных символов, например пути к модулям или семантические версии.

Строки - это последовательности символов в кавычках. Есть два вида строк: интерпретируемые строки, начинающиеся и заканчивающиеся кавычками (", U+0022), и необработанные строки, начинающиеся и заканчивающиеся серьезными акцентами ( ` , U+0060). Интерпретируемые строки могут содержать escape-последовательности, состоящие из обратной косой черты (\, U+005C), за которым следует другой символ. Экранированные кавычки (\") не завершают интерпретируемую строку. Значение интерпретируемой строки без кавычек - это последовательность символов между кавычками, где каждая escape-последовательность заменяется символом, следующим за обратной косой чертой (например, \" заменяется на ", \n заменяется на n). Напротив, значение необработанной строки без кавычек - это просто последовательность символов между серьезными акцентами; обратная косая черта не имеет особого значения в необработанных строках.

В грамматике go.mod идентификаторы и строки взаимозаменяемы.


Читайте также:


Комментариев нет:

Отправить комментарий