Класс разбирает и выполняет скрипты MGL. Он определен в #include <mgl2/mgl.h>
.
Основная функция класса mglParse – Execute()
, выполняющая построчный разбор скрипта. Также есть вспомогательные функции для поиска и создания переменных MGL (объектов, производных от mglDataA
). Эти функции полезны для отображения значений массивов во внешних объектах (например, в отдельном окне) или для предоставления доступа к внутренним массивам. Функция AllowSetSize()
позволяет запретить изменение размера картинки (запрещает команду setsize
). Функция AllowFileIO()
позволяет запретить доступ к файлам на диске.
mglParse
:
mglParse (bool
setsize=false
)
¶mglParse
:
mglParse (HMPR
pr)
¶mglParse
:
mglParse (mglParse &
pr)
¶HMPR
mgl_create_parser ()
¶Создает экземпляр класса mglParse
и устанавливает значение AllowSetSize.
mglParse
:
~mglParse ()
¶void
mgl_delete_parser (HMPR
p)
¶Удаляет экземпляр класса.
mglParse
: HMPR
Self ()
¶Возвращает указатель на используемый объект типа HMPR
.
mglParse
: void
Execute (mglGraph &
gr, const char *
text)
¶mglParse
: void
Execute (mglGraph &
gr, const wchar_t *
text)
¶void
mgl_parse_text (HMGL
gr, HMPR
p, const char *
text)
¶void
mgl_parse_textw (HMGL
gr, HMPR
p, const wchar_t *
text)
¶Выполняет построчно скрипт MGL, содержащийся в text. Строки считаются разделенными символом ‘\n’. Это основная функция класса.
mglParse
: void
Execute (mglGraph &
gr, FILE *
fp, bool
print=false
)
¶void
mgl_parse_file (HMGL
gr, HMPR
p, FILE *
fp, int
print)
¶Аналогично предыдущему, но скрипт читается из файла fp. Если print=true
, то предупреждения и информационные сообщения печатаются в stdout.
mglParse
: int
Parse (mglGraph &
gr, const char *
str, long
pos=0
)
¶mglParse
: int
Parse (mglGraph &
gr, const wchar_t *
str, long
pos=0
)
¶int
mgl_parse_line (HMGL
gr, HMPR
p, const char *
str, int
pos)
¶int
mgl_parse_linew (HMGL
gr, HMPR
p, const wchar_t *
str, int
pos)
¶Выполняет строку str с выводом графики на gr. Возвращает код ошибки: 0 – нет ошибок, 1 – неправильные аргументы, 2 – неизвестная команда, 3 – строка слишком длинная, 4 – нет закрывающей скобки или ‘'’. Аргумент pos задает позицию строки в документе/файле для использования в команде for.
mglParse
: mglData
Calc (const char *
formula)
¶mglParse
: mglData
Calc (const wchar_t *
formula)
¶HMDT
mgl_parser_calc (HMPR
p, const char *
formula)
¶HMDT
mgl_parser_calcw (HMPR
p, const wchar_t *
formula)
¶Разбирает строку formula и возвращает полученный массив. В отличие от AddVar()
или FindVar()
, это обычный массив данных, который следует удалить после использования.
mglParse
: mglDataC
CalcComplex (const char *
formula)
¶mglParse
: mglDataC
CalcComplex (const wchar_t *
formula)
¶HADT
mgl_parser_calc_complex (HMPR
p, const char *
formula)
¶HADT
mgl_parser_calc_complexw (HMPR
p, const wchar_t *
formula)
¶Разбирает строку formula и возвращает полученный массив с комплексными значениями. В отличие от AddVar()
или FindVar()
, это обычный массив данных, который следует удалить после использования.
mglParse
: void
AddParam (int
n, const char *
str)
¶mglParse
: void
AddParam (int
n, const wchar_t *
str)
¶void
mgl_parser_add_param (HMPR
p, int
id, const char *
val)
¶void
mgl_parser_add_paramw (HMPR
p, int
id, const wchar_t *
val)
¶Устанавливает значение n-го параметра строкой str (n=0, 1 ... ’z’-’a’+10). Строка str не должна содержать символ ‘$’.
mglParse
: mglVar *
FindVar (const char *
name)
¶mglParse
: mglVar *
FindVar (const wchar_t *
name)
¶HMDT
mgl_parser_find_var (HMPR
p, const char *
name)
¶HMDT
mgl_parser_find_varw (HMPR
p, const wchar_t *
name)
¶Возвращает указатель на переменную с именем name или NULL
если переменная отсутствует. Используйте эту функцию для добавления внешних массивов в скрипт. Не удаляйте полученный массив!
mglParse
: mglVar *
AddVar (const char *
name)
¶mglParse
: mglVar *
AddVar (const wchar_t *
name)
¶HMDT
mgl_parser_add_var (HMPR
p, const char *
name)
¶HMDT
mgl_parser_add_varw (HMPR
p, const wchar_t *
name)
¶Возвращает указатель на переменную с именем name. Если переменная отсутствует, то она будет создана. Используйте эту функцию для добавления внешних массивов в скрипт. Не удаляйте полученный массив!
mglParse
: void
OpenHDF (const char *
fname)
¶void
mgl_parser_openhdf (HMPR
pr, const char *
fname)
¶Читает все массивы данных из HDF5 файла fname и создает переменные MGL с соответствующими именами. Если имя данных начинается с ‘!’, то будут созданы комплексные массивы.
mglParse
(C++): void
DeleteVar (const char *
name)
¶mglParse
(C++): void
DeleteVar (const wchar_t *
name)
¶void
mgl_parser_del_var (HMPR
p, const char *
name)
¶void
mgl_parser_del_varw (HMPR
p, const wchar_t *
name)
¶Удаляет переменную по имени name.
mglParse
(C++): void
DeleteAll ()
¶void
mgl_parser_del_all (HMPR
p)
¶Удаляет все переменные и сбрасывает список команд к списку по умолчанию в данном классе.
mglParse
: void
RestoreOnce ()
¶void
mgl_parser_restore_once (HMPR
p)
¶Восстанавливает состояние флага Once.
mglParse
: void
AllowSetSize (bool
a)
¶void
mgl_parser_allow_setsize (HMPR
p, int
a)
¶Разрешает/запрещает команду setsize.
mglParse
: void
AllowFileIO (bool
a)
¶void
mgl_parser_allow_file_io (HMPR
p, int
a)
¶Разрешает/запрещает команды чтения файлов.
mglParse
: void
AllowDllCall (bool
a)
¶void
mgl_parser_allow_dll_call (HMPR
p, int
a)
¶Разрешает/запрещает команду load.
mglParse
: void
Stop ()
¶void
mgl_parser_stop (HMPR
p)
¶Посылает сигнал завершения выполнения для следующей команды.
mglParse
: void
SetVariant (int
var=0
)
¶void
mgl_parser_variant (HMPR
p, int
var=0
)
¶Задает вариант аргумента(ов), разделенных символом ‘?’, для всех последующих комманд.
mglParse
: void
StartID (int
id=0
)
¶void
mgl_parser_start_id (HMPR
p, int
id)
¶Задает начальный id (обычно это номер строки) первой строки при последующем выполнении скрипта.
mglParse
: long
GetCmdNum ()
¶long
mgl_parser_cmd_num (HMPR
p)
¶Возвращает число зарегистрированных команд MGL.
mglParse
: const char *
GetCmdName (long
id)
¶const char *
mgl_parser_cmd_name (HMPR
p, long
id)
¶Возвращает имя команды MGL с заданным номером id.
mglParse
: int
CmdType (const char *
name)
¶int
mgl_parser_cmd_type (HMPR
p, const char *
name)
¶Возвращает тип команды MGL с именем name. Типы команд: 0 – не команда, 1 - графики по данным, 2 - прочие графики, 3 - настройка, 4 - обработка данных, 5 - создание данных, 6 - трансформация, 7 - ход выполнения, 8 - 1d графики, 9 - 2d графики, 10 - 3d графики, 11 - двойные графики, 12 - векторные поля, 13 - оси координат, 14 - примитивы, 15 - настройка осей, 16 - текст/легенда, 17 - изменение данных.
mglParse
: const char *
CmdFormat (const char *
name)
¶const char *
mgl_parser_cmd_frmt (HMPR
p, const char *
name)
¶Возвращает формат аргументов команды MGL с именем name.
mglParse
: const char *
CmdDesc (const char *
name)
¶const char *
mgl_parser_cmd_desc (HMPR
p, const char *
name)
¶Возвращает описание команды MGL с именем name.
mglParse
: void
RK_Step (const char *
eqs, const char *
vars, mreal
dt=1
)
¶mglParse
: void
RK_Step (const wchar_t *
eqs, const wchar_t *
vars, mreal
dt=1
)
¶void
mgl_rk_step (HMPR
p, const char *
eqs, const char *
vars, mreal
dt)
¶void
mgl_rk_step_w (HMPR
p, const wchar_t *
eqs, const wchar_t *
vars, mreal
dt)
¶Make one step for ordinary differential equation(s) {var1’ = eq1, ... } with time-step dt. Here strings eqs and vars contain the equations and variable names separated by symbol ‘;’. The variable(s) ‘var1’, ... are the ones, defined in MGL script previously. The Runge-Kutta 4-th order method is used.