PureBasic

Общие правила синтаксиса

Краткое описание функций:
Комментарии Ключевые слова Функции
Константы Строковые литералы Метки
Выражения Группировка команд Многострочный код
Глоссарий
PureBasic имеет определенные правила, которые никогда не меняются. Это:

Комментарии

Комментарии отмечены точкой с запятой ';', весь текст после ';' игнорируется компилятором.

Пример

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, термины "команды" и "функции" - имеют одинаковое значение, независимо от того, возвращает ли функция значение или нет. Конкретнее по возвращаемым значениям любой функции, можно прочитать в связанном описании этой функции.