CN111580821B - 脚本绑定方法、装置、电子设备及计算机可读存储介质 - Google Patents
脚本绑定方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111580821B CN111580821B CN201910118057.4A CN201910118057A CN111580821B CN 111580821 B CN111580821 B CN 111580821B CN 201910118057 A CN201910118057 A CN 201910118057A CN 111580821 B CN111580821 B CN 111580821B
- Authority
- CN
- China
- Prior art keywords
- bound
- module
- script
- platform
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种脚本绑定方法、装置、电子设备及计算机可读存储介质。该方法包括:获取预配置的模块配置信息;依据模块配置信息,确定至少一个待绑定模块,其中,待绑定模块由第一平台提供;依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台。本申请实施例实现了脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
Description
技术领域
本申请涉及脚本处理技术领域,具体而言,本申请涉及一种脚本绑定方法、装置、电子设备及计算机可读存储介质。
背景技术
随着Web技术的不断发展,JavaScript语言的功能越来越强大,使得构建大型的Web应用和开发运行于原生环境的应用成为可能,JavaScript也受到越来越多的开发者欢迎,已成为当今最受欢迎的编程语言之一。
JavaScript作为一门脚本语言,最初只能运行在浏览器中,而随着开发需求的不断增长,开发者也迫切希望JavaScript可以构建运行于原生环境的应用,虽然经过不断升级的JavaScript相比于以前性能大幅度提升,能实现的功能也更加丰富,但在原生环境中,其运行性能还是无法与C++语言相比的。
为了解决不同编程语言之间的交互,脚本绑定技术应运产生。现有技术主要通过脚本绑定工具,比如tolua++、SWIG等。现有的脚本绑定工具的主要做法是:在目标语言中创造一套简单的API接口,并将目标语言指向另一种语言中的实际实现。
然而,这种方式需要将导出的接口一一列出到配置文件中,这样带来了十分巨大的工作量,另外,一旦有任何C++接口改动,就必须更改配置文件,这也极大地影响软件的开发效率,使得开发周期变得更长。
发明内容
本申请提供了一种脚本绑定方法、装置及电子设备,可以解决上述技术问题。所述技术方案如下:
第一方面,提供了一种脚本绑定方法,该方法包括:
获取预配置的模块配置信息;
依据模块配置信息,确定至少一个待绑定模块,其中,待绑定模块由第一平台提供;
依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至第二平台。
第二方面,提供了一种脚本绑定装置,该装置包括:
信息获取模块,用于获取预配置的模块配置信息;
对象确定模块,用于依据模块配置信息,确定至少一个待绑定模块,其中,待绑定模块由第一平台提供;
绑定处理模块,用于依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台。
第三方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述脚本绑定方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述脚本绑定方法。
本申请实施例提供的技术方案带来的有益效果是获取预配置的模块配置信息,依据模块配置信息,确定至少一个待绑定模块,依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台,实现脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例一提供的脚本绑定方法的流程示意图;
图2为本申请实施例一提供的脚本绑定方法中格式转换的一个流程示意图;
图3为本申请实施例一提供的脚本绑定方法中格式转换的另一个流程示意图;
图4为本申请实施例一提供的另一种脚本绑定方法的流程示意图;
图5为本申请实施例二提供的脚本绑定方法的流程示意图;
图6为本申请实施例二提供的模块生成器的处理流程示意图;
图7为本申请实施例三提供的一种脚本绑定装置的结构示意图;
图8为本申请实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
脚本绑定工具的主要目的是使javascript脚本能够调用到c++代码。为了实现这个目的,现有的脚本绑定工具的主要做法是通过预先提供接口,将提供需要调用的C++接口配置至javascript脚本。然而,若需要调用的C++接口的数量过多,或者需要调用的C++接口被调整后,就需要进行配置。这种配置过程,消耗大量的人力,并且容易出错。
本申请提供的脚本绑定方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
实施例一
本申请实施例提供了一种脚本绑定方法,如图1所示,该方法包括:步骤S110、步骤S120和步骤S130。
步骤S110、获取预配置的模块配置信息。
本申请实施例中,电子设备获取预配置的模块配置信息,以便通过读取模块配置信息确定待绑定模块。实际应用时,模块配置信息存储在电子设备上,也可以存储在与电子设备连接的其他设备上。
本申请实施例中,电子设备为PC机、笔记本电脑、服务器等具备数据处理的设备,实际应用时,一般将电子设备设置为PC机。
具体地,模块配置信息可以包括模块的名称以及模块的相关信息,如模块的代码信息中待解析对象(如头文件)、绑定内容。实际应用时,绑定内容可以通过设置过滤规则进行确定。实际应用时,模块的名称可以利用相应的标签信息进行确定,如标签信息为:地址配置模块。
步骤S120、依据模块配置信息,确定至少一个待绑定模块,其中,待绑定模块由第一平台提供。
本申请实施例中,第一平台一般设置为C++平台,待绑定模块是通过C++平台生成的。
实际应用时,待绑定模块的数量可以为1,也可以为多个,当待绑定模块的数量为多个时,分别对每个待绑定模块进行处理。
步骤S130、依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至第二平台。
本申请实施例中,格式转换指的是将由待绑定模块的代码信息(即代码格式)进行转换,转换为第二平台能够识别的代码,以便第二平台能够识别。例如,将C++格式的代码标识为JAVA格式的代码;再如,将html格式代码转换为code格式。
本申请实施例,获取预配置的模块配置信息,依据模块配置信息,确定至少一个待绑定模块,依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台,实现脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
在一个实现方式中,如图1所示,步骤S130、依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,包括:
步骤S131(图中未示出)、基于预配置的环境配置信息,依次对待绑定模块包括的代码信息进行解析。
本申请实施例中环境配置信息确定了电子设备对待绑定模块进行处理的本地环境,为后续对解析结果进行格式转换提供了转换基础。
本申请实施例中,环境配置信息用于表征本申请提供的方法的运行环境,例如系统或用户应用程序设置的一些参数。
在另一个实现方式中,如图2所示,步骤S130中对解析结果进行格式转换,包括:步骤S132和步骤S133。
步骤S132、依据解析结果,选定待绑定内容;
步骤S133、对待绑定内容进行格式转换,得到符合第二平台代码格式的脚本。
本申请实施例中,通过待绑定内容的确定,针对性地进行格式转换,防止因对整个解析结果进行格式转换,带来的不必要的计算量,提高脚本生成的效率。
例如,假设解析结果包括A、B两部分内容,其中,仅A内容为待绑定内容,那么只需将A部分对应的代码进行格式转换即可。
在又一个实现方式中,如图2所示,步骤S132中依据解析的结果,选定待绑定内容,包括:步骤S1321至步骤S1324。
步骤S1321(图中未示出)、依据解析结果,确定待绑定模块的头文件;
步骤S1322(图中未示出)、解析头文件,确定待绑定类的属性信息;
步骤S1323(图中未示出)、对待绑定类的属性信息进行解析,生成注册类的声明;
步骤S1324(图中未示出)、基于注册类的声明,选定待绑定内容。
实际应用时,确定待绑定模块的头文件可以通过关键字(如head)进行快速查找,从而快速完成头文件的解析,确定头文件中包括的类,进而完成头文件中待绑定的类的解析,进而生成注册类的声明。
本申请实施例中,待绑定类的属性用于表征类中定义的变量,用于描述类的所有对象共同特征。
在又一些实现方式中,步骤S1323对待绑定类的属性信息进行解析,生成注册类的声明,包括:
基于预置模板,从待绑定类的属性信息中进行筛选,得到待解析类;
对待解析类进行解析,以生成所述待解析类对应的注册类的声明。
本申请实施例中,预置模板用于表征待解析类的筛选条件。
本申请实施例中,待解析类是一种通过其包含的数据说明和操作数据或传递消息的函数,待解析类的实例称为对象。
本申请通过预置模板的设置,起到了设置筛选条件的作用,通过该筛选条件在待绑定类的属性信息中进行筛选,得到待解析类,从而完成确定需要进行解析的对象,以生成注册类的声明。
例如,假设根据待绑定类的属性信息可以确定当前模块提供的类分别为:A、B和C,根据预置模板在这三个类中进行筛选,确定仅仅对A进行解析,确定A的详细内容后,根据A的详细内容完成针对A的注册,注册在执行本申请提供的方法的电子设备,以便注册完成后,第二平台能够直接调用已完成注册的类的功能。
在又一些实现方式中,解析结果包括第一过滤规则,步骤S1324基于注册类的声明,选定待绑定内容,包括:
根据预置模板,确定第二过滤规则;
依据第一过滤规则和第二过滤规则,对注册类的声明进行筛选,得到相应的待绑定内容。
本申请实施例中,第一和第二过滤规则均用于表征筛选条件,以确定待绑定内容。
本申请实施例中,模块配置信息提供了第一过滤规则,通过解析得到的解析结果中提取到第一过滤规则,另外预置模板提供第二过滤规则,结合第一过滤规则和第二过滤规则,完成对注册类的筛选,从而确定待绑定内容。
实际应用时,可以通过cheetah解析包实现对预置模板的解析,从而确定预置模板提供的第二过滤规则。
在又一个实现方式中,步骤S1322中解析头文件,包括:
获取预配置的语法解析信息,并确定语法解析信息对应的语法解析器;
利用语法解析器,解析头文件。
实际应用时,语法解析信息可以通过libclang编译文件提供,通过该编译文件确定对应的语法解析器,如cindex,通过cindex进行解析,读取到头文件中语法抽象树。
在又一个实现方式中,如图3所示,步骤S130中对解析结果进行格式转换,得到符合第二平台代码格式的脚本,包括:步骤S134和步骤S135。
步骤S134、基于预配置的类型转换规则,确定第一平台至第二平台的代码转换规则;
步骤S135、依据第一平台至第二平台的代码转换规则,对解析结果进行格式转换。
本申请实施例通过提供类型转换规则提供不同平台间的代码转换规则,为将第一平台的待绑定模块绑定至第二平台提供了格式转换的基础。本申请中需求方为第二平台,被绑定方为第一平台,因此通过查询预配置的类型转换规则,确定第一平台至第二平台的代码转换规则,以完成对解析结果的格式转换。实际应用时,通过上述步骤,可知需要解析格式转换的为待绑定内容,因此,依据第一平台至第二平台的代码转换规则,对待绑定内容进行格式转换。
在又一个实现方式中,如图4所示方法步骤S210至步骤S250,其中,步骤S210、步骤S220、步骤S230分别与步骤S110、步骤S120、步骤S130的执行过程相同或相似,此处不再赘述。
步骤S240、在将脚本绑定至第二平台之后,检测是否还存在未完成绑定的待绑定模块;
步骤S250、若存在,对未完成绑定的待绑定模块执行依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将所述脚本绑定至第二平台的步骤,即执行步骤S230的步骤,直至完成所有待绑定模块的绑定处理。
本申请通过遍历,逐个完成各个待绑定模块的绑定处理,实现依据模块配置信息完成第二平台的需求的目的,保证第二平台能够调用待绑定模块提供的功能,为后续利用第二平台进行开发提供遍历,缩短开发周期,提高开发效率。
实施例二
为了进一步说明本申请提供的脚本的绑定方法,下面结合图5和图6对本申请进行详细说明。
本申请实施例提供的电子设备通过读取绑定配置(即模块配置信息),确定待绑定模块集合,待绑定模块集合中可能包括一个待绑定模块,也可能包括多个待绑定模块。电子设备解析待绑定模块的代码信息,解析过程中,电子设备读取用户配置文件userconf.ini,得到环境配置信息,将解析结果结合环境配置信息进行组装生成器的处理,组装成模块生成器,由模块生成器实现对待绑定模块的处理,完成对待绑定模块的绑定,绑定完成后,电子设备判断待绑定模块集合中是否所有的待绑定模块均已完成绑定处理,若未完成,对未完成绑定处理的待绑定模块执行解析模块配置的操作,若已完成,确定绑定结束。
具体地,模块生成器对待绑定模块待处理步骤如图6所示,组成模块生成器后,待绑定模块的初始信息(即解析结果)和环境配置信息作为模块生成器的输入数据,模块生成器依据该输入数据确定输出文件,模块生成器处理过程中,模块生成器利用Cheetah方法对绑定模板(即预置模板)进行解析匹配工作,将解析预置模板的结果写入绑定文件头(即需求方,本实施中为第二平台)。本申请实施例中,预置模板是最终生成代码(格式转换)的框架,为所有的绑定代码(即待绑定模块的包括的代码信息)提供结构信息。同时,模块生成器通过读取预配置文件libclang文件,并利用clang的语法解析器cindex,以便模块生成器通过cindex对绑定文件头进行处理,通过cindex获取到抽象语法树,最终结合预置模板提供的结构信息以及语法解析器获取的内容确定绑定文件的文件头,由于将预置模板的内容写入了绑定文件头,因此确定了对待绑定模块的绑定处理方式。结合图5中解析模块配置得到的待绑定模块的头文件,并利用语法解析器对该头文件进行解析,以获取节点Class信息,模块生成器依据绑定文件头确定是否需要对获取到的各个节点进行判断,确定需要处理的节点,即确定是否需要生成该节点提供的类的绑定注册。若需要,解析class信息,以便模块生成器依据解析结果生成注册类的声明,另外,图5中解析模块配置得到的解析结果中包括第一过滤规则,写入绑定文件头的预置模板的解析结果中包括第二过滤规则,通过结合第一过滤规则和第二过滤规则,对生成的注册类的声明进行功能剔除,剔除后,查询conversins.yaml文件,通过PyYamL对conversins.yaml文件进行读取,确定类型转换信息,以便将剔除后的注册类的声明转换为第二平台的代码格式,完成功能生成(Function生成)步骤,最终依据Function生成的结果生成类的绑定注册,完成对当前节点的处理,若还存在其他需要处理的结果,则继续处理,否则,生成的类的绑定注册信息写入绑定文件尾后,输出绑定文件。
本申请实施例中,解析这Class信息以得到所有的方法,但是这些方法中有不需要绑定其他的私有方法,模块配置信息中明确指出的不需自动绑定的方法,因此需要对解析得到的方法进行剔除,在剔除完成后就得到了需要绑定生成的接口。
本申请实施例中,需求绑定的接口的处理过程中,仅结合预置模板与接口的语法树并不足以生成方法的自动绑定代码,这是原因C++(即第一平台)的数据类型和JavaScript(第二平台)的数据类型并不是一一对应的,因此需要确定类型的转换关系。
本申请中,将常用的类型转换关系信息配置在conversions.yaml文件中,通过解析yaml类型文件生成待绑定接口的自动绑定代码解析类型转换的规则,再结合预置模板、接口的语法树,最终生成接口的自动绑定代码。最后,在接口的自动绑定代码生成后,生成类的绑定注册。通过绑定注册可以将自动绑定导出的C++接口,加入到JavaScript的运行环境中。一次类的绑定注册完成后,会递归解析其子节点,当无其他子节点时,解析完成;否则,继续解析,获取节点的Class信息,直至所有的子节点解析完成。模块中所有的头文件解析完成后,一个模块的自动绑定代码生成完成,最终输出自动绑定的代码文件。
实施例三
本申请实施例提供了一种脚本绑定装置,如图7所示,该脚本绑定装置30可以包括:信息获取模块301、对象确定模块302以及绑定处理模块303,其中,
信息获取模块301,用于获取预配置的模块配置信息;
对象确定模块302,用于依据模块配置信息,确定至少一个待绑定模块,其中,待绑定模块由第一平台提供;
绑定处理模块303,用于依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至第二平台。
本申请实施例,获取预配置的模块配置信息,依据模块配置信息,确定至少一个待绑定模块,依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台,实现脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
进一步地,绑定处理模块303用于:
基于预配置的环境配置信息,依次对所述待绑定模块包括的代码信息进行解析。
进一步地,绑定处理模块303用于:
依据解析结果,选定待绑定内容;
对所述待绑定内容进行格式转换,得到符合第二平台代码格式的脚本。
进一步地,绑定处理模块303用于:
依据所述解析结果,确定所述待绑定模块的头文件;
解析所述头文件,确定待绑定类的属性信息;
对待绑定类的属性信息进行解析,生成注册类的声明;
基于所述注册类的声明,选定待绑定内容。
进一步地,绑定处理模块303还用于:
基于预置模板,从待绑定类的属性信息中进行筛选,得到待解析类;
对所述待解析类进行解析,以生成所述待解析类对应的注册类的声明。
进一步地,解析结果包括第一过滤规则,进一步地,绑定处理模块303还用于:
根据预置模板,确定第二过滤规则;
依据所述第一过滤规则和所述第二过滤规则,对所述注册类的声明进行筛选,得到相应的待绑定内容。
进一步地,绑定处理模块303用于:获取预配置的语法解析信息,并确定所述语法解析信息对应的语法解析器;利用所述语法解析器,解析所述头文件。
进一步地,绑定处理模块303用于:
所述对解析结果进行格式转换,得到符合第二平台代码格式的脚本,包括:
基于预配置的类型转换规则,确定第一平台至第二平台的代码转换规则;
依据所述第一平台至第二平台的代码转换规则,对所述解析结果进行格式转换。
进一步地,绑定处理模块303还用于:
在将脚本绑定至所述第二平台之后,检测是否还存在未完成绑定的待绑定模块;
若存在,对未完成绑定的待绑定模块执行所述依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将所述脚本绑定至所述第二平台的步骤,直至完成所有待绑定模块的绑定处理。
本实施例的脚本绑定装置可执行本申请实施例一提供的脚本绑定方法,其实现原理相类似,此处不再赘述。
实施例四
本申请实施例提供了一种电子设备,如图8所示,图8所示的电子设备400包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。进一步地,电子设备400还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备400的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可以包括一通路,在上述组件之间传送信息。总线4002可以是PCI总线或EISA总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现图7所示实施例提供的脚本绑定装置的动作。
本申请实施例,获取预配置的模块配置信息,依据模块配置信息,确定至少一个待绑定模块,依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台,实现脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现实施例一至实施例三任一实施例所示的方法。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,获取预配置的模块配置信息,依据模块配置信息,确定至少一个待绑定模块,依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,并对解析结果进行格式转换,得到符合第二平台代码格式的脚本,以将脚本绑定至所述第二平台,实现脚本的自动绑定过程,提高脚本绑定效率,保证第二平台能够调用第一平台提供的功能,完成不同语言平台间的交互,从而降低开发成本,缩短研发周期。
本申请实施例提供了一种计算机可读存储介质适用于上述方法实施例。在此不再赘述。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种脚本绑定方法,其特征在于,包括:
获取预配置的模块配置信息;
依据所述模块配置信息,确定至少一个待绑定模块,其中,所述待绑定模块由第一平台提供;
依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,对解析结果进行格式转换,得到符合第二平台代码格式的脚本,并生成所述脚本中的类的绑定注册信息;
基于所述至少一个待绑定模块分别对应的所述脚本和所述至少一个待绑定模块分别对应的所述绑定注册信息,以将至少一个所述脚本绑定至所述第二平台,得到将至少一个所述脚本绑定至所述第二平台后的绑定文件。
2.根据权利要求1所述的方法,其特征在于,所述依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,包括:
基于预配置的环境配置信息,依次对所述待绑定模块包括的代码信息进行解析。
3.根据权利要求1所述的方法,其特征在于,所述对解析结果进行格式转换,包括:
依据解析结果,选定待绑定内容;
对所述待绑定内容进行格式转换,得到符合第二平台代码格式的脚本。
4.根据权利要求3所述的方法,其特征在于,所述依据解析结果,选定待绑定内容,包括:
依据所述解析结果,确定所述待绑定模块的头文件;
解析所述头文件,确定待绑定类的属性信息;
对待绑定类的属性信息进行解析,生成注册类的声明;
基于所述注册类的声明,选定待绑定内容。
5.根据权利要求4所述的方法,其特征在于,所述对待绑定类的属性信息进行解析,生成注册类的声明,包括:
基于预置模板,从待绑定类的属性信息中进行筛选,得到待解析类;
对所述待解析类进行解析,以生成所述待解析类对应的注册类的声明。
6.根据权利要求4所述的方法,其特征在于,所述解析结果包括第一过滤规则,所述基于所述注册类的声明,选定待绑定内容,包括:
根据对预置模板的解析,确定所述预置模板提供的第二过滤规则;
依据所述第一过滤规则和所述第二过滤规则,对所述注册类的声明进行筛选,得到相应的待绑定内容。
7.根据权利要求4所述的方法,其特征在于,所述解析所述头文件,包括:
获取预配置的语法解析信息,并确定所述语法解析信息对应的语法解析器;
利用所述语法解析器,解析所述头文件。
8.一种脚本绑定装置,其特征在于,包括:
信息获取模块,用于获取预配置的模块配置信息;
对象确定模块,用于依据所述模块配置信息,确定至少一个待绑定模块,其中,所述待绑定模块由第一平台提供;
绑定处理模块,用于依次针对至少一个待绑定模块中的一个待绑定模块,解析该待绑定模块的包括的代码信息,对解析结果进行格式转换,得到符合第二平台代码格式的脚本,并生成所述脚本中的类的绑定注册信息;
所述绑定处理模块还用于基于所述至少一个待绑定模块分别对应的所述脚本和所述至少一个待绑定模块分别对应的所述绑定注册信息,以将至少一个所述脚本绑定至所述第二平台,得到将至少一个所述脚本绑定至所述第二平台后的绑定文件。
9.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-7中任一项所述的脚本绑定方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述的脚本绑定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910118057.4A CN111580821B (zh) | 2019-02-15 | 2019-02-15 | 脚本绑定方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910118057.4A CN111580821B (zh) | 2019-02-15 | 2019-02-15 | 脚本绑定方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580821A CN111580821A (zh) | 2020-08-25 |
CN111580821B true CN111580821B (zh) | 2022-10-25 |
Family
ID=72122457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910118057.4A Active CN111580821B (zh) | 2019-02-15 | 2019-02-15 | 脚本绑定方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580821B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114371867A (zh) * | 2020-10-14 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 关于业务规则的信息处理方法、设备和介质 |
CN113504896B (zh) * | 2021-07-12 | 2023-08-18 | 云南腾云信息产业有限公司 | 一种应用程序的业务数据处理方法、装置及移动终端 |
CN113703728B (zh) * | 2021-08-27 | 2024-05-03 | 支付宝(杭州)信息技术有限公司 | 一种辅助研发的微组件业务处理方法、装置以及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100153B1 (en) * | 2000-07-06 | 2006-08-29 | Microsoft Corporation | Compiler generation of a late binding interface implementation |
CN104781785A (zh) * | 2012-09-05 | 2015-07-15 | 微软公司 | 为应用从中间语言代码生成本机代码 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6957439B1 (en) * | 2000-05-09 | 2005-10-18 | International Business Machines Corporation | Method, system, and program for mapping objects in different language formats |
CN104346146B (zh) * | 2013-07-29 | 2016-05-04 | 腾讯科技(深圳)有限公司 | 一种跨平台转换应用代码的方法及装置 |
CN104391730B (zh) * | 2014-08-03 | 2017-07-11 | 浙江网新恒天软件有限公司 | 一种软件源码语言翻译系统及方法 |
CN108920133B (zh) * | 2018-06-14 | 2021-06-18 | 北京三快在线科技有限公司 | 跨语言编程方法、装置、电子设备及存储介质 |
-
2019
- 2019-02-15 CN CN201910118057.4A patent/CN111580821B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7100153B1 (en) * | 2000-07-06 | 2006-08-29 | Microsoft Corporation | Compiler generation of a late binding interface implementation |
CN104781785A (zh) * | 2012-09-05 | 2015-07-15 | 微软公司 | 为应用从中间语言代码生成本机代码 |
Also Published As
Publication number | Publication date |
---|---|
CN111580821A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580821B (zh) | 脚本绑定方法、装置、电子设备及计算机可读存储介质 | |
CN103294598B (zh) | 一种源代码检查方法及装置 | |
CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
US20060265469A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
CN106469049B (zh) | 一种文件扫描的方法及装置 | |
CN108388454B (zh) | 动态提供兼容js脚本内容的方法、装置和终端设备 | |
CN108804304B (zh) | 测试用例生成方法及装置、存储介质、电子设备 | |
CN111610978A (zh) | 一种小程序转换方法、装置、设备及存储介质 | |
CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
CN111221842A (zh) | 大数据处理系统及方法 | |
CN111427583A (zh) | 组件的编译方法、装置和电子设备及计算机可读存储介质 | |
CN111309751A (zh) | 大数据处理方法及装置 | |
CN111427784B (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN111221852A (zh) | 基于大数据的混合查询处理方法及装置 | |
CN111309332A (zh) | 文件内容按需加载方法、装置及电子设备、存储介质 | |
CN114238151A (zh) | 一种软件测试方法、装置、电子设备及存储介质 | |
CN110554857B (zh) | JavaBean生成方法、装置、系统及可读存储介质 | |
CN111221888A (zh) | 大数据分析系统及方法 | |
CN117008920A (zh) | 引擎系统、请求处理方法、装置、计算机设备及存储介质 | |
CN111158667A (zh) | 代码注入方法和装置、电子设备及存储介质 | |
CN111221841A (zh) | 基于大数据的实时处理方法及装置 | |
CN112130860B (zh) | Json对象解析方法、装置、电子设备及存储介质 | |
CN110489124B (zh) | 源代码执行方法、装置、存储介质及计算机设备 | |
CN114281341A (zh) | 数据结构定义文件的编译方法、装置、计算机设备及介质 | |
CN114661298A (zh) | 公共方法自动生成方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |