【技术实现步骤摘要】
用于线性广义LL识别和上下文感知解析的方法和系统本申请是基于申请日为2015年7月10日、申请号为2015800374924、专利技术创造名称为“用于线性广义LL识别和上下文感知解析的方法和系统”的中国专利申请的分案申请。相关申请的交叉引用本申请要求于2015年7月10日提交的美国申请No.14/796,782和于2014年7月11日提交的美国临时申请No.62/023771的优先权,其以引用方式并入全文。
如本文所示和所述的本专利技术的实施例涉及根据形式文法的规则的形式语言中的符号串的解析。具体地,实施例提供了在不存在歧义的情况下具有O(n)性能的改进的通用LL(从左至右,最左侧推导)解析处理。
技术介绍
解析(parsing)(也称为语法分析)是对可以是字符串或类似格式的一组符号进行分析的处理,其中,“字符串(string)”是项目(在此情况下为符号)的序列,其中序列是有限的且符号是从被称为字母表的一组可能的符号中选择的。解析处理可应用于自然语言、计算机语言和包括DNA序列的类似系统。解析处理应用特定于被处理的语言的形式文法的一组规则。解析处理是计算机实现的处理,并且在计算机科学领域并且更具体地在计算语言学领域中所理解的意义上使用该术语。在计算语言学中,解析处理还被理解为用于指代通过计算机处理器和程序对自然语言或计算机语言中的句子或其它单词串进行形式分析得到其组成部分,并得出显示每个组成部分与每另一个组成部分之间的语法关系的解析树。该解析树还可以包含关于被处理的句子或单词串的语义信息和其它 ...
【技术保护点】
1.一种计算机实现的解析方法,其中,解析处理依次匹配来自输入流的标记,直到到达具有多个标记的后续备选项序列的决策点,所述方法包括:/n在响应于决策值列表为空而调用识别函数以重新填充决策值列表之后,从决策值列表中获取下一个值以确定遵循多个备选项序列中的哪个序列,其中识别函数确定输入流中的标记位置,然后依次匹配标记,直到仅剩下一条备选路径;/n响应于遇到二次决策点而调用特定于决策点的函数,或者将返回函数指针推到指针堆栈上,然后goto至该决策点的代码;/n确定输入流是否穷尽;/n响应于决策值列表中剩余单个备选路径,构建决策值的列表或多列表;以及/n选择一个列表继续所述解析处理。/n
【技术特征摘要】
20140711 US 62/023,7711.一种计算机实现的解析方法,其中,解析处理依次匹配来自输入流的标记,直到到达具有多个标记的后续备选项序列的决策点,所述方法包括:
在响应于决策值列表为空而调用识别函数以重新填充决策值列表之后,从决策值列表中获取下一个值以确定遵循多个备选项序列中的哪个序列,其中识别函数确定输入流中的标记位置,然后依次匹配标记,直到仅剩下一条备选路径;
响应于遇到二次决策点而调用特定于决策点的函数,或者将返回函数指针推到指针堆栈上,然后goto至该决策点的代码;
确定输入流是否穷尽;
响应于决策值列表中剩余单个备选路径,构建决策值的列表或多列表;以及
选择一个列表继续所述解析处理。
2.根据权利要求1所述的计算机实现的解析方法,还包括文法分析,以构建所述解析处理,所述方法还包括步骤:
解析文法以创建中间表示,该中间表示将用于解析代码生成;
构造表示文法的所有特征的用于分析中间表示的图形,所述特征包括递归、交替、备选项的分组、和循环;
处理所述图形中的每个决策点,以生成用于生成识别码的中间表示;
生成识别函数的代码,所述识别函数将返回在解析器运行时的方向列表;
修补中间表示中的每个决策点以引用该决策点的识别代码;以及
根据中间表示生成解析代码。
3.根据权利要求1所述的计算机实现的解析方法,其中,输入流已穷尽或遇到了返回调用,则调用退出处理。
4.根据权利要求3所述的计算机实现的解析方法,其中,调用具有索引或节点列表的退出处理。
5.根据权利要求4所述的计算机实现的解析方法,其中,退出处理包括:
如果节点列表没有穷尽,则从节点列表中获取下一个条目以获得节点和索引;
基于索引选择动作;以及
如果要附加方向,则添加方向列表索引节点条目,链接到索引处的当前节点。
6.根据权利要求5所述的计算机实现的解析方法,其中,如果节点是第一节点并设置了节点值,则创建索引。
7.根据权利要求4所述的计算机实现的解析方法,其中退出处理包括:在不附加方向的情况下,将索引或节点添加至返回列表。
8.一种非暂时性机器可读介质,其中存储有一组指令,当通过计算机系统执行所述指令时,使得所述计算机系统执行用于解析方法的一组操作,其中,解析处理依次匹配来自输入流的标记,直到到达具有多个标记的后续备选项序列的决策点,所述操作包括:
在响应于决策值列表为空而调用识别函数以重新填充决策值列表之后,从决策值列表中获取下一个值以确定遵循多个备选项序列中的哪个序列,其中识别函数确定输入流中的标记位置,然后依次匹配标记,直到仅剩下一条备选路径;
响应于遇到二次决策点而调用特定于决策点的函数,或者将返回函数指针推到指针堆栈上,然后goto至该决策点的代码;
确定输入流是否穷尽;
响应于决策值列表中剩余单个备选路径,构建决策值的列表或多列表;以及
选择一个列表继续所述解析处理。
9.根据权利要求8所述的非暂时性机器可读介质,其中还存储有使得所述计算机系统执行包括文法分析的操作以构建解析处理的指令,所述操作还包括:
解析文法以创建中间表示,该中间表...
【专利技术属性】
技术研发人员:洛林·G·克雷默三世,
申请(专利权)人:洛林·G·克雷默三世,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。