Общие правила синтаксиса
Комментарии | Ключевые слова | Функции |
Константы | Строковые литералы | Метки | Выражения | Группировка команд | Многострочный код |
Глоссарий |
Комментарии
Комментарии отмечены точкой с запятой ';', весь текст после ';' игнорируется компилятором.
Пример
If a = 10 ; Это - комментарий, чтобы указать на что-то.
Ключевые слова
Все ключевые слова используются для общих вещей в PureBasic, таких как создание массивов (Dim) или связных списков (NewList) или управление процессом выполнения программы (If: Else: EndIf). Они НЕ сопровождаются скобками '(', которые обычно присущи для функций PureBasic.
Пример
If a = 1 ; If, Else и EndIf ключевые слова; в то время как 'a = 1' ... ; переменная, используемая в выражении. Else ... EndIf
Все Ключевые слова Purebasic описываются в главах справочника, их описание находится с левой стороны главной страницы справочника.
Функции
Все функции должны сопровождаться скобками '(', иначе они не рассматриваются как функции (даже для функций без параметров).
Пример
EventWindow() ; это - Функция. EventWindow ; это - Переменная.
Все Функции включены в библиотеки команд PureBasic, их описание находится с правой стороны главной страницы справочника.
Константы
Все константы начинаются с символа "#". Они могут быть объявлены лишь однажды в исходном коде и всегда сохраняют заданные им значения. (Компилятор заменяет все имена констант соответствующими значениями при компиляции исполняемого файла.) Дополнительную информацию про константы можно посмотреть здесь.
Пример
#Hello = 10 ; Это константа. Hello = 10 ; Это переменная.
Строковые литералы
Строковый литерал – это строка ASCII-символов заключенных в двойные кавычки, соответственно объявляется с помощью символа ' " '.
Поддерживаются Escape-последовательности (экранированные/управляющие последовательности символов), для этого перед строковым литералом ставится символ ' ~ '.
Допустимые escape-последовательности:\a: сигнал Chr(7) \b: возврат на одну позицию Chr(8) \f: разрыв страницы Chr(12) \n: новая строка Chr(10) \r: возврат каретки Chr(13) \t: горизонтальная табуляция Chr(9) \v: вертикальная табуляция Chr(11) \": двойные кавычки Chr(34) \\: обратный слэш Chr(92)Есть две специальных константы для strings:#Empty$: Представляет собой пустую строку (точно так же как "") #Null$ : Представляет собой пустую строку. Это можно использовать для функций API, для которых требуется нулевой указатель (NULL-указатель) в виде строки, или действительно пустая строка.
Предупреждение: В Windows \t не работает с графическими функциями библиотек 2DDrawing и VectorDrawing.
Пример
a$ = "Hello world" ; Стандартная строка b$ = ~"Escape\nMe !" ; Строка с escape-последовательностью
Метки
Метка (англ. label) — это символьное имя (идентификатор), указывающее на определённое место кода (туда где установлена метка). Компилятор Purebasic-ка сам вычисляет адреса этих мест кода при компиляции. Некоторые операторы purebasic позволяют использовать установленные метки для изменения хода программы, например: Goto, Gosub, OnErrorGoto, Restore.
Все метки должны сопровождаться символом : (двоеточием). Имя метки не должно содержать операторов (+,-...) также специальные символы (ß, ä, ö, ü...). Когда метка определена в процедуре, метка будет доступна только в этой процедуре.
Пример
I_am_a_label:
Выражения
Выражение - это что-то, что может быть вычислено. Выражение может содержать любые переменные, константы или функции, одного и того же типа (или иметь преобразователи типов, например: число-строка) . Когда вы используете в выражении числа, Вы можете добавить знак '$' перед числом для обозначения шестнадцатеричного числа, или знак '%', обозначения двоичного числа. Если их нет - число считается десятичным. Строка (string) должна быть заключена в кавычки. Правила вычисления выражений можно посмотреть #Conversion Type">здесь
Пример
a = a + 1 + (12 * 3) a = a + WindowHeight(#Window) + b/2 + #MyConstant If a <> 12 + 2 b + 2 >= c + 3 EndIf a$ = b$ + "this is a string value" + c$ Foo = Foo + $69 / %1001 ; Использование 16-ричного и двоичного числа
Группировка команд
Вы можете размещать любое количество команд в одной строке, разделяя их при помощи двоеточия ':'.
Пример
If IsCrazy = 0 : MessageRequester("инфо", "Not Crazy") : Else : MessageRequester("инфо", "Crazy") : EndIf
Многострочный код (продолжение команды на следующей строке)
Если строка кода содержит большое выражение, его можно разделить на несколько строк. Разделяемая строка в точке переноса должна заканчиваться одним из следующих операторов: Плюс ( + ); Запятая ( , ); Побитовое 'ИЛИ' ( | ); Логическое 'И' ( And ); Логическое 'ИЛИ' ( Or ); Логическое 'исключающее ИЛИ' ( Xor ).
Пример
Text$ = "Very very very very long text" + #LF$ + "another long text" + #LF$ + " and the end of the long text" MessageRequester("Hello this is a very long title", "And a very long message, so we can use the multiline" + #LF$ + Text$, #PB_MessageRequester_Ok)
Глоссарий
Слова используемые в этом руководстве:<variable>: обычная переменная.
<expression>: выражение, как объяснено выше.
<constant>: числовая константа.
<label>: метка программы.
<type>: любой тип, (стандартный или структурированный).
Другое
- В этом руководстве все темы перечислены в алфавитном порядке, чтобы уменьшить время поиска.
- Возвращаемые значения команд, это всегда целое число (Integer), если в строке описания синтаксиса команды не указан другой тип.
- В документации PureBasic, термины "команды" и "функции" - имеют одинаковое значение, независимо от того, возвращает ли функция значение или нет. Конкретнее по возвращаемым значениям любой функции, можно прочитать в связанном описании этой функции.