#if !defined(__E_STATIC_LIB)
#include "include_exmlparser_header.h"

//TODO 静态库需要的部分,会记录所有的函数名到数组里,静态编译的时候需要取回命令名
static ARG_INFO g_argumentInfo_exmlparser_global_var[] = 
{
    // 1=参数名称, 2=参数详细解释, 3=指定图像索引,从1开始,0表示无, 4=图像数目(用作动画)
    // 5=参数类型, 6=参数默认值,   7=参数标志 AS_ 开头常量
    // AS_HAS_DEFAULT_VALUE         有默认值,倒数第二个参数是默认值
    // AS_DEFAULT_VALUE_IS_EMPTY    默认值为空,有可空标志
    // AS_RECEIVE_VAR               只能传递变量,相当于传引用,传递过来的肯定不是数组
    // AS_RECEIVE_VAR_ARRAY         传递过来的肯定是数组变量引用
    // AS_RECEIVE_VAR_OR_ARRAY      传递变量或者数组变量引用
    // AS_RECEIVE_ARRAY_DATA        传递数组
    // AS_RECEIVE_ALL_TYPE_DATA     传递数组/非数组
    // AS_RECEIVE_VAR_OR_OTHER      可以传递 变量/数据/返回值数据

    /*000*/ {"根节点名", "本参数提供所要新建解析树根节点的名称", 0, 0, SDT_TEXT, 0, NULL},

    /*001*/ {"XML文件名或字节集", "指定欲导入的XML文件名称或欲导入的XML字节集数据。如果参数类型为“文本型”，则从文件导入（文件名可以是绝对路径名，也可以是相对路径名）；如果参数类型为“字节集型”，则从字节集导入；其它类型不予处理。", 0, 0, _SDT_ALL, 0, NULL},

    /*002*/ {"XML文件名", "欲导出的XML文件名称。该文件名可以是绝对路径名，也可以是相对路径名。注意：如果指定的文件已经存在，原有文件内容将被覆盖。", 0, 0, SDT_TEXT, 0, NULL},
    /*003*/ {"字符集", "指定欲使用的XML字符集属性，默认为“gb18030”。注意，本参数仅用于对“<?xml ... ?>”节点的“encoding”属性赋值，不据此进行编码转换。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},
    /*004*/ {"换行文本", "用于格式化XML文本，默认为 #换行符。注意，如果此参数不为空文本，导出又导入后，会对有子节点的节点值产生影响。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},
    /*005*/ {"缩进文本", "用于格式化XML文本，默认为TAB键字符文本。注意，如果此参数不为空文本，导出又导入后，会对有子节点的节点值产生影响。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},

    /*006*/ {"根节点名称", "本参数作为“取根节点名”命令的填充参数。“取根节点名”命令执行完毕后，该参数的内容为当前解析树根节点的名称。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR},

    /*007*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*008*/ {"子节点个数", "本参数作为“取子节点数”命令的填充参数。“取子节点数”命令执行完毕后，该参数内容为子节点的个数。如果命令执行失败，该参数的值无意义", 0, 0, SDT_INT, 0, AS_RECEIVE_VAR},

    /*009*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*010*/ {"子节点名称数组", "本参数作为“取子节点名”命令的填充参数。“取子节点名”命令执行完毕后，该参数内容为所有子节点名称组成的数组。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR_ARRAY},

    /*011*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*012*/ {"节点值", "本参数作为“取节点值”命令的填充参数。“取节点值”命令执行完毕后，该参数的内容为节点的值。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR},

    /*013*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*014*/ {"二进制节点值", "本参数作为“取二进制值”命令的填充参数。“取二进制值”命令执行完毕后，该参数内容为节点的二进制值。如果命令执行失败，该参数的值无意义", 0, 0, SDT_BIN, 0, AS_RECEIVE_VAR},

    /*015*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*016*/ {"属性名称数组", "本参数作为“取全部属性名”命令的填充参数。“取全部属性名”命令执行完毕后，该参数内容为节点的所有属性名称组成的数组。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR_ARRAY},

    /*017*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*018*/ {"属性名", "本参数提供“取属性值”命令所需要的节点属性的名称。该参数也可以是属性的索引，例如“@1”表示节点的第一个属性", 0, 0, SDT_TEXT, 0, NULL},
    /*019*/ {"属性值", "本参数作为“取属性值”命令的填充参数。“取属性值”命令执行完毕后，该参数内容为节点属性的值。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR},

    /*020*/ {"父节点全路径", "本参数为要插入节点的父节点在解析树中的全路径，格式有两种形式，一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”，另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”，另外这两种形式可以混合使用，例如“根节点/@1/@2”", 0, 0, SDT_TEXT, 0, NULL},
    /*021*/ {"新节点名", "本参数提供“插入节点”命令所需要的新插入节点的名称", 0, 0, SDT_TEXT, 0, NULL},
    /*022*/ {"新节点值", "本参数作为“插入节点”命令所需要的新插入节点的值", 0, 0, SDT_TEXT, 0, NULL},
    /*023*/ {"使用CDATA", "如果本参数为真，则节点值文本将被“<![CDATA[”和“]]>”包围，这意味着该文本可以包含任意字符（以不影响CDATA解析为限）。如果被省略，默认为假。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY},

    /*024*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*025*/ {"新属性名", "本参数提供“插入属性”命令欲插入的节点新属性的名称", 0, 0, SDT_TEXT, 0, NULL},
    /*026*/ {"属性值", "本参数作为“插入属性”命令欲插入的节点新属性的值", 0, 0, SDT_TEXT, 0, NULL},

    /*027*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*028*/ {"属性名", "本参数提供“删除属性”命令欲删除属性的名称。该参数也可以是属性的索引，例如“@1”表示节点的第一个属性", 0, 0, SDT_TEXT, 0, NULL},

    /*029*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*030*/ {"新节点名", "本参数提供“修改节点名”命令欲修改节点的新名称", 0, 0, SDT_TEXT, 0, NULL},

    /*031*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*032*/ {"新节点值", "本参数提供“修改节点值”命令欲修改节点的新值", 0, 0, SDT_TEXT, 0, NULL},
    /*033*/ {"使用CDATA", "如果本参数为真，则节点值文本将被“<![CDATA[”和“]]>”包围，这意味着该文本可以包含任意字符（以不影响CDATA解析为限）。如果被省略，默认为假。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY},

    /*034*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*035*/ {"新节点二进制值", "本参数提供“修改二进制值”命令欲修改节点的新的二进制值", 0, 0, SDT_BIN, 0, NULL},

    /*036*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*037*/ {"属性名", "本参数提供“修改属性名”命令欲修改的节点属性名。该参数也可以是属性的索引，例如“@1”表示节点的第一个属性", 0, 0, SDT_TEXT, 0, NULL},
    /*038*/ {"新属性名", "本参数提供“修改属性名”命令欲修改节点的新属性名", 0, 0, SDT_TEXT, 0, NULL},

    /*039*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*040*/ {"属性名", "本参数提供“修改属性值”命令欲修改节点的属性名。该参数也可以是属性的索引，例如“@1”表示节点的第一个属性", 0, 0, SDT_TEXT, 0, NULL},
    /*041*/ {"新属性值", "本参数提供“修改属性值”命令欲修改节点的新属性值", 0, 0, SDT_TEXT, 0, NULL},

    /*042*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。注意该参数支持通配符（*, ?）——仅在路径中使用节点名称时支持通配符，使用索引时不支持通配符。", 0, 0, SDT_TEXT, 0, NULL},

    /*043*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。注意该参数支持通配符（*, ?）——仅在路径中使用节点名称时支持通配符，使用索引时不支持通配符。", 0, 0, SDT_TEXT, 0, NULL},
    /*044*/ {"批量节点值", "本参数作为“批量取节点值”命令的填充参数。“批量取节点值”命令执行完毕后，该参数内容为节点值的数组。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, AS_RECEIVE_VAR_ARRAY},

    /*045*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。注意该参数支持通配符（*, ?）——仅在路径中使用节点名称时支持通配符，使用索引时不支持通配符。", 0, 0, SDT_TEXT, 0, NULL},
    /*046*/ {"新节点值", "本参数作为“批量修改节点值”命令欲修改节点的新值。如果命令执行失败，该参数的值无意义", 0, 0, SDT_TEXT, 0, NULL},
    /*047*/ {"使用CDATA", "如果本参数为真，则节点值文本将被“<![CDATA[”和“]]>”包围，这意味着该文本可以包含任意字符（以不影响CDATA解析为限）。如果被省略，默认为假。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY},

    /*048*/ {"匹配文本", "包含通配符的文本", 0, 0, SDT_TEXT, 0, NULL},
    /*049*/ {"常量文本", "不包含通配符的普通文本", 0, 0, SDT_TEXT, 0, NULL},

    /*050*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*051*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*052*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*053*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*054*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*055*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*056*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*057*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*058*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*059*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*060*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*061*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*062*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*063*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*064*/ {"属性名", "本参数提供“取属性值”命令所需要的节点属性的名称。该参数也可以是属性的索引，例如“@1”表示节点的第一个属性", 0, 0, SDT_TEXT, 0, NULL},
    /*065*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

    /*066*/ {"字符集", "指定欲使用的XML字符集属性，默认为“gb18030”。注意，本参数仅用于对“<?xml ... ?>”节点的“encoding”属性赋值，不据此进行编码转换。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},
    /*067*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},
    /*068*/ {"换行文本", "用于格式化XML文本，默认为 #换行符。注意，如果此参数不为空文本，导出又导入后，会对有子节点的节点值产生影响。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},
    /*069*/ {"缩进文本", "用于格式化XML文本，默认为TAB键字符文本。注意，如果此参数不为空文本，导出又导入后，会对有子节点的节点值产生影响。", 0, 0, SDT_TEXT, 0, AS_DEFAULT_VALUE_IS_EMPTY},

    /*070*/ {"节点全路径", "本参数为节点在解析树中的全路径，格式有两种形式：一种为通过“/”字符把节点名称串联起来，例如“根节点/子节点/叶子节点”；另一种是采用索引的形式，索引的最小值为1，表示它是它父节点的第几个子节点，然后在索引前面加上@符号，例如“@1/@2/@1”。这两种形式可以混合使用，例如“根节点/@1/@2”。", 0, 0, SDT_TEXT, 0, NULL},
    /*071*/ {"执行结果", "如果提供本参数，其中将存放本方法的执行结果——成功为“真”，失败为“假”。", 0, 0, SDT_BOOL, 0, AS_DEFAULT_VALUE_IS_EMPTY | AS_RECEIVE_VAR},

};

#ifdef _DEBUG    // 这里是为了确认参数序号是否正确, 成员数比最后一个序号大1就是正确
const int dbg_cmd_arg_count__ = sizeof(g_argumentInfo_exmlparser_global_var) / sizeof(g_argumentInfo_exmlparser_global_var[0]);
#endif


#define EXMLPARSER_DEF_CMDINFO(_index, _szName, _szEgName, _szExplain, _shtCategory, _wState, _dtRetValType, _wReserved, _shtUserLevel, _shtBitmapIndex, _shtBitmapCount, _nArgCount, _pBeginArgInfo) \
    { _szName, ______E_FNENAME(_szEgName), _szExplain, _shtCategory, _wState, _dtRetValType, _wReserved, _shtUserLevel, _shtBitmapIndex, _shtBitmapCount, _nArgCount, _pBeginArgInfo },


// 易语言每个命令的定义, 会把信息显示在支持库列表里, 这里每个成员都是详细的描述一个命令的信息
CMD_INFO g_cmdInfo_exmlparser_global_var[] = 
{
    EXMLPARSER_DEF(EXMLPARSER_DEF_CMDINFO)
};

int g_cmdInfo_exmlparser_global_var_count = sizeof(g_cmdInfo_exmlparser_global_var) / sizeof(g_cmdInfo_exmlparser_global_var[0]);

#endif

