【发布时间】:2015-08-29 16:45:15
【问题描述】:
我正在使用 JDK 7 编写 Java 源代码(.java)到 Java 中的伪代码生成器。我想将输入语句的伪代码格式显示为:
read n
就像我们在 Pascal 中看到的那样。
然而,在 Java 中获取控制台输入的方式有很多种。我的伪代码生成器不过是 Java 语法的解析器。但是我无法设计语法来解析输入语句。
那么谁能告诉我如何为 Java 输入语句编写 BNF 表达式。 如果我的方法是错误的,请提及正确的方法。
【问题讨论】:
-
@hege_hegedus 我正在使用 javacc,它是一个类似于 ANTLR 的解析器生成器,但我的问题是开发语法,我使用的几乎所有语法都可以在 [Java 语言规范] 中找到(download.oracle.com /otn-pub/jcp/jls-7-mr3.../JLS-JavaSE7-Full.pdf) 但是没有这样的输入语法。
-
我不太确定您在寻找什么。 “解析输入语句的语法”到底是什么意思?您是说您找到的语法无法解析读取输入的 Java 程序吗?因为我觉得这很可疑。 Java 中的“输入语句”只是方法调用,当然可用的 Java 语法能够解析方法调用。
-
@sepp2k 绝对我的语法可以解析语句和方法,但我正在寻找一种专门检测输入语句的语法。正如我所说,它将用于生成伪代码。
-
@SwagatoChatterjee 你的意思是语法应该拒绝任何不读取输入的语句吗?你怎么能用这种方式表达任何有用的东西。无论哪种方式,这听起来都不像是应该在语法级别处理的事情。
标签: java compiler-construction bnf javacc