Класс разбирает и выполняет скрипты 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.