首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“并发”词法和语法分析相对于词法和语法分析?

“并发”词法和语法分析相对于词法和语法分析?
EN

Stack Overflow用户
提问于 2016-10-15 22:41:56
回答 1查看 476关注 0票数 0

我见过一些语言会吃一个令牌,然后解析令牌,然后当它们需要在解析时检查下一个令牌时,它们会从lexer请求它。

因此,您有了if (x == 3) / lex,再次检查它是什么-- if,lex,并确保它是a (在本例中,解析一个请求3的表达式,直到它解析完一个表达式,然后再解析一个结束的括号。

另一种选择是将此输入流作为keyword, symbol, identifier, equality, number, symbol,然后将该令牌列表提供给解析器,解析器将将其解析为AST。

这两种技术的优缺点是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-15 22:55:11

对于大多数语法来说,是否将整个输入作为第一次传递并不重要,然后在解析传递期间从列表中获取令牌,或者根据需要从列表中获取标记。第二种方法避免了内存中令牌列表的需要,第一种方法意味着您可以以更快的速度解析几次,这可能需要在解释器中这样做。

但是,如果语法需要一个以上的前瞻性标记,或者不是左-右,那么您可能需要更多的lex。虽然自然语言有一些奇怪的解析规则(“时间飞快如箭,果蝇如香蕉”),但计算机语言通常被设计成可以用一个简单的递归下降解析器来解析,并带有一个前瞻性标记。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40064998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档