Готовый перевод QuakeC Manual / QuakeC Мануал: 2.Лексические элементы

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «перевод редактируется»

Текст программы состоит из одной или нескольких единиц компиляции. Текст каждой компиляции - это последовательность отдельных лексем. Лексема (лексический элемент) - это ограничитель, идентификатор (который может быть зарезервированным словом), числовой литерал, символьный литерал, строковый литерал или комментарий. Результат выполнения программы зависит только от конкретно последовательности лексем, исключая возможные комментарии. В некоторых случаях необходим явный разделитель между соседними лексемами (в противном случае они могут быть восприняты как одна).

Текст компиляции делится на строки. Точка с запятой завершает строку.

В некоторых случаях для разделения соседних лексических элементов необходим явный разделитель. Им может быть символ пробела, символ управления форматом или конец строки, а именно:

Символ пробела является разделителем, кроме комментария, строкового или символьного литерала.

Конец строчки(\n) всегда является разделителем.

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

2.1. Разделители

Разделителем является один из следующих специальных символов:

& ‘ ( ) * + , - . / : ; < = > | [ ]

или один из следующих разделителей в состав которых входит соединение двух соседних специальных символов:

== != >= <= && ||

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

2.2. Пробелы

Для улучшения наглядности программы в нее могут вставляться пробелы. По крайней мере, один пробел, требуется вставить между двумя последовательными именами, числами или служебными и стандартными именами. Пробелы нельзя использовать внутри имен и чисел.

Все символы пробела являются разделителями.

2.3. Идентификаторы

Идентификатор является последовательностью одного или более-символов-разделителей.Идентификаторы используются различными способами в QuakeC программах.

*Некоторые идентификаторы зарезервированы для использования в качестве зарезервированных слов, они не должны использоваться в качестве переменных.

*Любой идентификатор, который не является зарезервированным словом может быть использован в качестве идентификатора.

Потенциальный идентификатор представляет собой последовательность не связанных символов-разделителей с максимум 64 символами, начиная с "AZ", "az", или "", и это может продолжаться с этих символов наряду с "0-9". Quake С учитывает регистр.

Имена функций, переменных и полей должны быть уникальными. Например, вы не можете определить переменную с тем же именем, что и поле.

2.4. Литералы

Установленные значения, которые вы буквально (literally) представляете в вашем источнике, и - не переменные.Литерал является либо числовым литералом, или строковым.

2.4.1. Числовые литералы

Real литерал является числовым литералом, который включает точку, integer литерал является числовым литералом без точки.Все числовые значения в QuakeC плавающей точкой.

5

0.2

-25.0

Векторный литерал представляет собой набор из трех real литералов заключенных в одинарные кавычки (').

‘0 0 0’

‘10 –12.5 0.0001’

2.4.2. Строковые литералы

Строковый литерал – это любая последовательность символов, заключенная в двойные кавычки (“) используется в качестве строки скобки.

“Это строка”

“Это строка с переносом на конце\n”

2.4.3. Встроенные функции

Встроенная функция обозначается знаком решетки ("#"), сопровождаемой целым числом.

#1

#12

2.5. Комментарии

Комментарий начинается с двух соседних дефисов и продолжается до конца строчки. Комментарий может помещаться в любой строчке программы. Quake C игнорирует все после двух слешей (//)

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

// на этой строке следует комментарий

/* комментарии к программе */

2.6. Модель прагма

Вот несколько определений, которые обычно встречаются в QuakeC коде, определяющие поведение анимированных моделей (монстров, игроки и т.д.).Компилятор QuakeC не интерпретирует большую часть такой информации, но она полезна для программы modelgen, которая генерирует модели.

2.6.1. Флаги анимации $flags rotation

Особенность вращения объекта.QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Возможные значения для $flags: 8(объект будет вращаться как броня и т.п ).Другие значения пока не известны.

2.6.2. База

$base object

QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Параметр object-имя файла модели, которая будет использоваться в качестве начальной позиции для анимации.

2.6.3. Каталог $cd <dir>

Укажите каталог, в котором находится файл вашей модели (. MDL) .

2.6.4. Определение кадров

$frame [<frame> [<frame2> ...]]

Это определяет несколько кадров анимации объекта.Для определения каждого кадра анимации,вы должны также определить QuakeC функцию кадра ,которая будет вызываться при этом кадре анимации.

2.6.5. Название модели $modelname name

Параметр name представляет собой имя файла модели .

2.6.6. Начало координат

$origin vector

QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Параметр vector является местоположением объекта в пределах ограничивающего прямоугольника в quake редакторе.

2.6.7. Коэффициент масштабирования $scale number

QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Число параметра берется из texmake числа,которое генерируется.Вы можете использовать различные значения, если хотите.

2.6.8. Файл скина

$skin skinfile

QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Параметр skinfile это имя (без расширения). LBM файла, который определяет скин объекта, сгенерированного программой texmake.

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется

Переведено на Нотабеноиде
http://notabenoid.org/book/38550/140773

Переводчики: railgun

Настройки

Готово:

100.00% КП = 1.0