首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java或LL解析

Java或LL解析
EN

Stack Overflow用户
提问于 2014-09-17 08:14:40
回答 2查看 2.1K关注 0票数 4

我的一位老师说,Java不能被解析。我不明白这一点,不知道这是不是真的。

我搜索了Java 8的语法,发现了以下内容:https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4

但是,即使我试图分析语法,我也不明白LL语法分析的问题。有没有人知道这是真的,是否知道一个科学的证据,或只是可以向我解释,为什么不可能找到一个语法构造的Java,可以被解析?

非常感谢大家和女孩们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 09:26:50

Java 7的Java语言规范说它不是LL(1)

本章提出的语法是参考实现的基础。请注意,它不是LL(1)语法,尽管在许多情况下它将必要的展望降到最低。

如果你发现:

  • 左递归,或
  • 一个可选的(A|B),两个或多个备选方案的交集共享同一个FIRST集;FIRST(A)FIRST(B)中也有一个或多个符号

你的语法不会是LL(1)

票数 2
EN

Stack Overflow用户

发布于 2014-09-17 09:00:25

我想是因为左边的递归。LL解析器无法处理左递归,并且在某些情况下指定了当前的Java语法,至少使用Java 7。

当然,众所周知,我们可以构造类似的语法来消除左递归,但是在其当前的规范中,Java语言无法被解析。

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

https://stackoverflow.com/questions/25885513

复制
相关文章

相似问题

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