[发明专利]一种多种脚本语言的转换方法有效
| 申请号: | 201611222920.3 | 申请日: | 2016-12-27 |
| 公开(公告)号: | CN106610838B | 公开(公告)日: | 2020-04-24 |
| 发明(设计)人: | 郭斌 | 申请(专利权)人: | 北京酷我科技有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/51 |
| 代理公司: | 北京国标律师事务所 11753 | 代理人: | 姚克枫 |
| 地址: | 100080 北京市海淀区农大*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多种 脚本语言 转换 方法 | ||
1.一种多种脚本语言的转换方法,其特征在于,包括如下步骤:
步骤1,设计一个复合数据类型VAR,该复合数据类型VAR支持六种基本类型的自由组合;
所述六种基本类型为:整数、浮点数、字符串、指针、数组和字典;
所述VAR用于消除脚本语言与C++中数据的差异;
步骤2,为每种脚本语言实现适配器;
步骤2的具体步骤分解如下:
步骤2.1,实现一个脚本语言数据类型与VAR的转换函数,将脚本语言数据类型分别用VAR的整数、浮点数、字符串、指针、数组和字典表示;
步骤2.2,向脚本引擎中注册C++类或函数,所述函数指在脚本语言中直接调用的函数,所述类指的是在脚本语言中能够访问的脚本引擎类或对象原型;
步骤2.3,实现一个符合脚本引擎格式的函数,作为步骤2.2所述函数或类中的函数到其C++实现的转换器;
步骤2.4,调用脚本引擎执行脚本文件;
步骤2.5,实现执行函数的功能,通过用VAR保存函数名称或ID作为参数来执行脚本引擎的调用函数功能;
步骤3,用C++函数制作或封装功能代码,然后将其注入到步骤2所述的适配器中,所述C++函数满足以下条件:以VAR数组和VAR字典作为参数、以VAR作为返回值。
2.如权利要求1所述的多种脚本语言的转换方法,其特征在于:步骤1中,数组中每一项的元素也是VAR,而字典中每一项的键是字符串类型,字符串类型的值是VAR。
3.如权利要求1所述的多种脚本语言的转换方法,其特征在于:步骤1中,所述VAR采用C++类实现对六种基本类型的数据的支持。
4.如权利要求1所述的多种脚本语言的转换方法,其特征在于:步骤1中,所述脚本语言包括但不限于:JS、Lua、php。
5.如权利要求1所述的多种脚本语言的转换方法,其特征在于:步骤3的具体步骤如下:
步骤3.1,使用VAR数组和VAR字典作为参数以及以VAR作为唯一返回值的C++函数实现或封装功能代码;
步骤3.2,根据上述步骤2.2所述,将3.1步骤实现的C++功能函数注册到脚本引擎的适配器中。
6.如权利要求1所述的多种脚本语言的转换方法,其特征在于:当遇到未知脚本引擎时,根据每种脚本引擎按照步骤2的方法去实现其适配器。
7.如权利要求6所述的多种脚本语言的转换方法,其特征在于:当未知脚本引擎比VAR的数据类型更多时,仅将VAR支持的数据类型传递给适配器;
当未知脚本引擎比VAR的数据类型更少时,在适配器中进行修改,将VAR的整数、浮点数、指针精简为字符串,将VAR的数组转化为字典;
对于不支持字符串和字典的未知脚本引擎,用未知脚本引擎支持的数据类型进行模拟;
如果未知脚本引擎无法模拟字符串和字典,则不支持该未知脚本引擎并返回错误提示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京酷我科技有限公司,未经北京酷我科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611222920.3/1.html,转载请声明来源钻瓜专利网。





