Описание функции


InputExpression

Преобразует строку в выражение Lizard без вычисления.

InputExpression(String.s)

Параметры

String.s Строка для преобразования

Возвращаемое значение

Успех:Возвращает указатель на выражение, которое можно преобразовать с помощью OutputExpression()
Ошибка:Возвращает #Null

Примечания

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

Пример

; STARGATE
; https://www.purebasic.fr/english/viewtopic.php?t=76279
XIncludeFile "../Library/Lizard.pbi"

; Lizard всегда должен быть инициализирован до выполнения каких либо операций с ним.
If Lizard::Initialize("../Library") ; Укаэите путь к папке с Lizard.dll.
    Debug "Lizard был инициализирован. Версия " + Lizard::Version()
Else
    Debug "Не удалось выполнить инициализацию Lizard"
    End
EndIf

Define Input.s, Output.s, *Expression

Input.s = "1+2*3"
*Expression = Lizard::InputExpression(Input) ; Преобразует строку в выражение Lizard (без вычисления).
Debug "Входное = " + Lizard::OutputExpression(*Expression) ; Выводит это выражение. Выражение остается действительным.

*Expression = Lizard::EvaluateExpression(*Expression) ; Вычисляет выражение в результат. Старое выражение больше не существует.
Debug "Результат = " + Lizard::OutputExpression(*Expression) ; Выводит выражение. Выражение остается действительным.

Lizard::FreeExpression(*Expression) ; Освобождает выражение, чтобы предотвратить утечку памяти, если оно больше не нужно.

; Завершение Lizard.
Lizard::Terminate()