QuakeC Manual / QuakeC Мануал: 2.Лексические элементы
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Текст программы состоит из одной или нескольких единиц компиляции. Текст каждой компиляции - это последовательность отдельных лексем. Лексема (лексический элемент) - это ограничитель, идентификатор (который может быть зарезервированным словом), числовой литерал, символьный литерал, строковый литерал или комментарий. Результат выполнения программы зависит только от конкретно последовательности лексем, исключая возможные комментарии. В некоторых случаях необходим явный разделитель между соседними лексемами (в противном случае они могут быть восприняты как одна). railgun 15.03.13 в 19:36 |
|
|
Текст компиляции делится на строки. Точка с запятой завершает строку. railgun 15.03.13 в 19:05 |
||
|
В некоторых случаях для разделения соседних лексических элементов необходим явный разделитель. Им может быть символ пробела, символ управления форматом или конец строки, а именно: railgun 15.03.13 в 19:11 |
||
|
Символ пробела является разделителем, кроме комментария, строкового или символьного литерала. railgun 15.03.13 в 19:19 |
||
|
Конец строчки(\n) всегда является разделителем. railgun 15.03.13 в 19:19 |
||
|
Один или несколько разделителей допустимы между любыми двумя соседними лексемами, перед первой или после последней лексемами каждой компиляции. По крайней мере один разделитель необходим между идентификатором или числовым литералом и соседними идентификаторами или числовыми литералами. railgun 15.03.13 в 19:47 |
||
|
2.1. Разделители railgun 15.03.13 в 19:20 |
||
|
Разделителем является один из следующих специальных символов: railgun 15.03.13 в 19:24 |
||
|
& ‘ ( ) * + , - . / : ; < = > | [ ] railgun 15.03.13 в 19:24 |
||
|
или один из следующих разделителей в состав которых входит соединение двух соседних специальных символов: railgun 15.03.13 в 19:24 |
||
|
== != >= <= && || railgun 15.03.13 в 19:24 |
||
|
Каждый специальный символ является простым ограничителем, за исключением тех случаев, когда он встречается в составном ограничителе, в комментарии, в строковом, символьном или числовом литералах. railgun 15.03.13 в 20:15 |
||
|
2.2. Пробелы railgun 15.03.13 в 20:10 |
||
|
Для улучшения наглядности программы в нее могут вставляться пробелы. По крайней мере, один пробел, требуется вставить между двумя последовательными именами, числами или служебными и стандартными именами. Пробелы нельзя использовать внутри имен и чисел. railgun 20.03.13 в 18:21 |
||
|
Все символы пробела являются разделителями. railgun 20.03.13 в 18:41 |
||
|
2.3. Идентификаторы railgun 20.03.13 в 17:20 |
||
|
Идентификатор является последовательностью одного или более-символов-разделителей.Идентификаторы используются различными способами в QuakeC программах. railgun 20.03.13 в 17:24 |
||
|
*Некоторые идентификаторы зарезервированы для использования в качестве зарезервированных слов, они не должны использоваться в качестве переменных. railgun 20.03.13 в 17:25 |
||
|
*Любой идентификатор, который не является зарезервированным словом может быть использован в качестве идентификатора. railgun 20.03.13 в 17:36 |
||
|
Потенциальный идентификатор представляет собой последовательность не связанных символов-разделителей с максимум 64 символами, начиная с "AZ", "az", или "", и это может продолжаться с этих символов наряду с "0-9". Quake С учитывает регистр. railgun 20.03.13 в 17:43 |
||
|
Имена функций, переменных и полей должны быть уникальными. Например, вы не можете определить переменную с тем же именем, что и поле. railgun 20.03.13 в 17:45 |
||
|
2.4. Литералы railgun 20.03.13 в 17:46 |
||
|
Установленные значения, которые вы буквально (literally) представляете в вашем источнике, и - не переменные.Литерал является либо числовым литералом, или строковым. railgun 20.03.13 в 17:51 |
||
|
2.4.1. Числовые литералы railgun 20.03.13 в 17:52 |
||
|
Real литерал является числовым литералом, который включает точку, integer литерал является числовым литералом без точки.Все числовые значения в QuakeC плавающей точкой. railgun 20.03.13 в 17:54 |
||
|
5 railgun 20.03.13 в 17:54 |
||
|
0.2 railgun 20.03.13 в 17:55 |
||
|
-25.0 railgun 20.03.13 в 17:55 |
||
|
Векторный литерал представляет собой набор из трех real литералов заключенных в одинарные кавычки ('). railgun 20.03.13 в 17:58 |
||
|
‘0 0 0’ railgun 20.03.13 в 17:58 |
||
|
‘10 –12.5 0.0001’ railgun 20.03.13 в 17:58 |
||
|
2.4.2. Строковые литералы railgun 20.03.13 в 17:59 |
||
|
Строковый литерал – это любая последовательность символов, заключенная в двойные кавычки (“) используется в качестве строки скобки. railgun 20.03.13 в 18:01 |
||
|
“Это строка” railgun 20.03.13 в 18:02 |
||
|
“Это строка с переносом на конце\n” railgun 20.03.13 в 18:04 |
||
|
2.4.3. Встроенные функции railgun 20.03.13 в 18:04 |
||
|
Встроенная функция обозначается знаком решетки ("#"), сопровождаемой целым числом. railgun 20.03.13 в 18:06 |
||
|
#1 railgun 20.03.13 в 18:08 |
||
|
#12 railgun 20.03.13 в 18:08 |
||
|
2.5. Комментарии railgun 20.03.13 в 18:09 |
||
|
Комментарий начинается с двух соседних дефисов и продолжается до конца строчки. Комментарий может помещаться в любой строчке программы. Quake C игнорирует все после двух слешей (//) railgun 20.03.13 в 18:11 |
||
|
Внутри набора символов, который представляет комментарий не может быть специальных символов определяющих начало и конец комментариев, соответственно (/* и */). Отметим, что комментарии могут заменить как одну строку, так и несколько. railgun 20.03.13 в 18:12 |
||
|
// на этой строке следует комментарий railgun 20.03.13 в 18:12 |
||
|
/* комментарии к программе */ railgun 20.03.13 в 18:12 |
||
|
2.6. Модель прагма railgun 20.03.13 в 18:13 |
||
|
Вот несколько определений, которые обычно встречаются в QuakeC коде, определяющие поведение анимированных моделей (монстров, игроки и т.д.).Компилятор QuakeC не интерпретирует большую часть такой информации, но она полезна для программы modelgen, которая генерирует модели. railgun 20.03.13 в 18:14 |
||
|
2.6.1. Флаги анимации $flags rotation railgun 20.03.13 в 18:16 |
||
|
Особенность вращения объекта.QuakeC не интерпретирует это поле, но это полезно для программы modelgen ,которая генерирует модели.Возможные значения для $flags: 8(объект будет вращаться как броня и т.п ).Другие значения пока не известны. railgun 20.03.13 в 18:18 |
||
|
2.6.2. База railgun 20.03.13 в 18:19 |
||
|
$base object railgun 20.03.13 в 18:19 |
