[发明专利]基于模板预处理添加新语意结构的方法、装置及电子设备有效
申请号: | 201811406055.7 | 申请日: | 2018-11-23 |
公开(公告)号: | CN109614104B | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 侯文杰 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京风雅颂专利代理有限公司 11403 | 代理人: | 鲍胜如 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 模板 预处理 添加 语意 结构 方法 装置 电子设备 | ||
1.一种基于模板预处理添加新语意结构的方法,其特征在于,包括:
在用于代码编写的原生编译器环境的代码中,定义原生编译器无法正常解析的包含预设调用接口的新语意结构,所述调用接口用于调用其他对象来对新语意结构进行解析;
设置用于解析所述新语意结构的特定解析程序,所述特定解析程序能够被加载至所述原生编译器环境中;
当所述新语意结构被所述原生编译器编译时,利用所述预设调用接口调用所述特定解析程序;
所述特定解析程序在完成解析后调用所述原生编译器,将所述特定解析程序生成的解析文件加载至所述原生编译器中,所述原生编译器将所述解析文件与所述编译环境中的可解析代码一起编译。
2.根据权利要求1所述的方法,其特征在于,所述在原生编译器环境的代码中,定义原生编译器无法正常解析的包含预设调用接口的新语意结构,包括:
定义包含不同数据类型变量的结构体,所述结构体至少包括类型和值两个变量,类型和值的域随着程序的执行也动态变化。
3.根据权利要求2所述的方法,其特征在于,所述在原生编译器环境的代码中,定义原生编译器无法正常解析的包含预设调用接口的新语意结构,还包括:
定义存储逻辑结构来描述所述代码,所述存储逻辑结构包括节点域、兄弟域及父亲域,所述节点域存放语句本身的性质,所述兄弟域用来表示顺序执行关系,所述父亲域用来表示调用关系。
4.根据权利要求3所述的方法,其特征在于,所述设置用于解析所述新语意结构的特定解析程序,包括:
在所述特定解析程序中设置词法分析器,所述词法分析器包括预处理子程序、输入缓冲区、扫描器及扫描缓冲区,所述预处理子程序剔除代码中无用的字符后,将处理后的输入字符放进扫描缓冲区,所述扫描器就从所述扫描缓冲区中识别代码中的符号。
5.根据权利要求4所述的方法,其特征在于,所述设置用于解析所述新语意结构的特定解析程序,还包括:
在所述特定解析程序中设置语法分析器,所述语法分析器包括语法分析总控器,语法分析总控器以词法分析所生成的单词符号双向链表为输入,依据语法分析法,对源程序语句进行逐一分析,最终生成源程序的语句流程图和数据字典。
6.根据权利要求5所述的方法,其特征在于:
所述语法分析器还包括用于存放程序数据的数据字典,所述数据字典中包括全局变量、函数形参变量以及语句块中的局部变量,所述数据字典供解释执行器的表达式规约器在进行表达式规约时查找所需要的数据。
7.根据权利要求6所述的方法,其特征在于,所述当所述新语意结构被所述原生编译器编译时,利用所述预设调用接口调用所述特定解析程序,包括:
在所述特定解析程序运行的本地代码中创建一个基对象;
在初始化代码中构建内部窗口对象和内部文档对象;
将所述内部窗口对象和内部文档对象与所述基对象进行关联并生成初始化对象;
利用所述初始化对象来调用所述特定解析程序。
8.根据权利要求7所述的方法,其特征在于,所述特定解析程序在完成解析后调用所述原生编译器,将所述特定解析程序生成的解析文件加载至所述原生编译器中,包括:
判断是否存在所述特定解析程序生成的内置对象;
若是,则进一步启用所述内置对象的映射函数,利用所述映射函数调用所述原生编译器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811406055.7/1.html,转载请声明来源钻瓜专利网。