Описание функции
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()