Набор символов и этапы компиляции

Для OpenGL shading languages используется набор символов Unicode в кодировке UTF-8. После предварительной обработки/препроцессинга только следующие символы разрешены в результирующем потоке знаков GLSL:

Символы a-z, A-Z, и подчеркивание ( _ ).

Цифры 0-9.

Символ точки ( ) (*Примечание: в подобной литературе для данного смысла обычно встречается слово «period» для слова «точка», а не привычные «dot» или «point». На правах образовательного сайта), плюс ( ), тире ( — ), слэш ( ), звездочка ( ), процент ( ), угловые скобки ( < и > ), квадратные скобки ( [ и ] ), круглые скобки ( ( и ) ), фигурные скобки ( { и } ), знак вставки/коретка ( ),  вертикальная черта ( ), амперсанд ( & ), тильда ( ~ ), равно ( = ), восклицательный знак ( ! ), двоеточие ( : ), запятая ( , ), точка с запятой ( ; ) и знак вопроса ( ? ).

Вы получите ошибку времени компиляции при попытке использовать другие символы.

Отсутствуют диграфы или триграфы. Там нет управляющих последовательностей или обратного слэша, используемого в качестве продолжения строки.

Строки актуальны для для диагностических сообщений компилятора и препроцессора. Они заканчиваются возвратом коретки или переводом строки, причем использование обоих сразу означает окончание одной строки.

Язык чувствителен к регистру.

Нет типов данных Символ или Строка, так что нет и кавычек.

Нет символа окончания файла.

Далее представлен формальный порядок логических этапов компиляции:

  1. Исходные строки объединяются формируя единый вход. Все предоставленные новые линии сохраняются.
  2. Происходит нумерация строк, основываясь на всех присутствующих новых строках, и не изменяется, когда новые линии будут отброшены.
  3. Везде, где обратный слэш (‘\’) стоит непосредственно перед новой строкой, оба будут отброшены. (Обратите внимание, пробелы не заменяются, что позволяет единственному символу занимать строку.) Любой новообразованный обратный слэш, следующий за новой строкой не отбрасывается; только те пары, возникающие после фазы 1, отбрасываются
  4. Все комментарии заменяются одним пробелом. (Обратите внимание, что комментарии в стиле ‘//’ заканчиваются  до окончания строки, и пробел, как правило, имеет отношение к предварительной обработки)
  5. Предварительной обработка окончен, в результате чего получена последовательность знаков GLSL, сформированная из символов, указанных выше.
  6. Обработка GLSL выполняется над последовательностью знаков GLSL.

Более подробное описание исходных строк, комментариев, нумерации строки, исключение строк, и предварительной обработки описывается в последующих разделах.

Main Admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *