公共安全标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210577393.7 (22)申请日 2022.05.25 (71)申请人 北京百度网讯科技有限公司 地址 100085 北京市海淀区上地十街10号 百度大厦2层 (72)发明人 李俊蓉 高飞  (74)专利代理 机构 北京市通商律师事务所 11951 专利代理师 姜莹丽 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/901(2019.01) G06F 8/38(2018.01) G06F 8/41(2018.01) (54)发明名称 源码信息检索方法、 装置、 电子设备、 存储介 质及产品 (57)摘要 本公开提供了一种源码信息检索方法、 装 置、 电子设备、 存储介质及产品, 涉及编程技术领 域, 尤其涉及源文件信息技术领域。 具体实现方 案为: 获取源码文件所有的字符信息, 所述字符 信息对应的抽象语 法以抽象语 法树的结构表示, 所述字符信息对应的基础元素以基础元素树的 结构表示; 基于所述抽象语 法树的特征构建表达 式缓存池, 并基于基础元素树的特征构建基础元 素缓存池; 响应于检索指令, 在所述表达式缓存 池和所述基础元素缓存池中, 检索所述源码文件 的源码信息。 通过本公开获取源码信息可以减少 信息获取的时延。 权利要求书3页 说明书8页 附图3页 CN 114880357 A 2022.08.09 CN 114880357 A 1.一种源码信息检索方法, 所述方法包括: 获取源码文件所有的源码信 息, 所述源码信 息对应的抽象语法以抽象语法树的结构表 示, 所述源码信息对应的基础元 素以基础元 素树的结构表示; 基于所述抽象语法树的特征构建表达 式缓存池, 并基于基础元素树的特征构建基础元 素缓存池; 响应于检索指令, 在所述表达式缓存池和所述基础元素缓存池中, 检索所述源码文件 的源码信息 。 2.根据权利要求1所述的方法, 其中, 所述获取源码文件所有的源码信息, 包括: 获取源码文件, 并对所述源码文件进行词语和语义分析, 得到用于表示所述源码文件 抽象语法的抽象语法树和用于表示所述源码文件基础元 素的基础元 素树。 3.根据权利要求1或2所述的方法, 其中, 所述基于所述抽象语法树的特征构建表达式 缓存池, 包括: 获取所述抽象语法树的第一节点, 并遍历所述第一节点, 确定所述第一节点的节点表 达式; 并 确定所述节点表达 式中指定字符的第 一偏移量, 将所述第 一偏移量作为存储节点表达 式的第一密钥; 基于所述第一密钥, 缓存所述节点表达式的字符信息, 构建表达式缓存 池。 4.根据权利要求3所述的方法, 其中, 所述确定所述节点表达 式中指定字符的第 一偏移 量, 包括: 响应于所述节点表达式为单一节点表达 式, 基于所述单一节点表达 式中指定字符的偏 移量, 确定所述节点表达式的第一偏移量; 或 响应于所述节点表达式为组合表达式, 获取所述组合表达 式中每个表达 式中指定字符 的偏移量, 基于每 个所述偏移量之间的逻辑关系, 确定所述节点表达式的第一偏移量。 5.根据权利要求3所述的方法, 其中, 所述基于所述第一密钥, 缓存所述节点表达式的 字符信息, 包括: 基于所述表达式缓存池的第一密钥, 遍历所述抽象语法树的第一节点, 采集所述节点 表达式的字符信息, 并缓存所述节点表达式的字符信息 。 6.根据权利要求1或2所述的方法, 其中, 所述基于基础元素树的特征构建基础元素缓 存池, 包括: 获取所述基础元素树的第二节点, 并遍历所述第二节点, 确定所述第二节点对应的基 础元素; 将所述基础元 素中指定 字符的第二偏移量, 作为存 储基础元 素信息的第二密钥; 基于所述第二密钥, 缓存所述基础元 素的字符信息, 构建基础元 素缓存池。 7.根据权利要求6所述的方法, 其中, 所述基于所述第二密钥, 缓存所述基础元素的字 符信息, 包括: 基于所述基础元素缓存池的第二密钥, 遍历所述基础元素树的第二节点, 采集所述源 码文件的基础元 素的字符信息, 并缓存所述基础元 素的字符信息 。 8.根据权利要求1所述的方法, 其中, 所述响应于检索指令, 在所述表达式缓存池和所权 利 要 求 书 1/3 页 2 CN 114880357 A 2述基础元 素缓存池中, 检索所述源码文件的源码信息, 包括: 基于所述抽象语法树的第一节点和/或所述基础元素树的第二节点, 按照所述检索指 令中的目标源码信息, 构建多个 检索路径; 基于所述多个检索 路径中的至少一个检索 路径, 在所述表达 式缓存池和所述基础元素 缓存池中, 检索所需的所述源码文件的字符信息 。 9.根据权利要求8所述的方法, 其中, 所述方法还 包括: 响应于所述检索 路径为基于所述第 一节点检索所述字符信 息, 且所述第 一节点对应的 节点表达式为指定类型 的节点表达式, 解析所述节点表达式, 获取所述第一节点的字符信 息; 基于所述第一节点的字符信息, 以及所述基础元素缓存池的基础元素的字符信息, 检 索所需的所述源码文件的字符信息 。 10.一种源码信息检索装置, 所述装置包括: 获取模块, 用于获取源码文件所有的字符信息, 所述字符信息对应的抽象语法 以抽象 语法树的结构表示, 所述字符信息对应的基础元 素以基础元 素树的结构表示; 构建模块, 用于基于所述抽象语法树的特征构建表达式缓存池, 并基于基础元素树的 特征构建基础元 素缓存池; 检索模块, 用于响应于检索指令, 在所述表达式缓存池和所述基础元素缓存池中, 检索 所述源码文件的源码信息 。 11.根据权利要求10所述的装置, 其中, 所述获取模块, 用于: 获取源码文件, 并对所述源码文件进行词语和语义分析, 得到用于表示所述源码文件 抽象语法的抽象语法树和用于表示所述源码文件基础元 素的基础元 素树。 12.根据权利要求10或1 1所述的装置, 其中, 所述构建模块, 用于: 获取所述抽象语法树的第一节点, 并遍历所述第一节点, 确定所述第一节点的节点表 达式; 并 确定所述节点表达 式中指定字符的第 一偏移量, 将所述第 一偏移量作为存储节点表达 式的第一密钥; 基于所述第一密钥, 缓存所述节点表达式的字符信息, 构建表达式缓存 池。 13.根据权利要求12所述的装置, 其中, 所述构建模块还用于: 响应于所述节点表达式为单一节点表达 式, 基于所述单一节点表达 式中指定字符的偏 移量, 确定所述节点表达式的第一偏移量; 或 响应于所述节点表达式为组合表达式, 获取所述组合表达 式中每个表达 式中指定字符 的偏移量, 基于每 个所述偏移量之间的逻辑关系, 确定所述节点表达式的第一偏移量。 14.根据权利要求12所述的装置, 其中, 所述装置还 包括: 缓存 模块; 所述缓存模块, 用于基于所述表达式缓存池的第一密钥, 遍历所述抽象语法树的第一 节点, 采集所述节点表达式的字符信息, 并缓存所述节点表达式的字符信息 。 15.根据权利要求10或1 1所述的装置, 其中, 所述构建模块, 用于: 获取所述基础元素树的第二节点, 并遍历所述第二节点, 确定所述第二节点对应的基 础元素;权 利 要 求 书 2/3 页 3 CN 114880357 A 3

.PDF文档 专利 源码信息检索方法、装置、电子设备、存储介质及产品

文档预览
中文文档 15 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共15页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 源码信息检索方法、装置、电子设备、存储介质及产品 第 1 页 专利 源码信息检索方法、装置、电子设备、存储介质及产品 第 2 页 专利 源码信息检索方法、装置、电子设备、存储介质及产品 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:15:58上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。