BNF for Java输入语句

时间:2015-08-29 16:45:16

标签: java compiler-construction bnf javacc

我正在使用JDK 7将Java源代码(.java)编写为Java中的伪代码生成器。我想将输入语句的伪代码格式显示为:

read n
就像我们在Pascal中看到的一样。

然而,有一些方法可以在Java中使用控制台输入。我的伪代码生成器只不过是Java语法的解析器。但是我无法设计语法来解析输入语句。

所以任何人都可以告诉我如何为Java输入语句编写BNF表达式。 如果我的方法有误,请提及正确的方法。

1 个答案:

答案 0 :(得分:0)

如果我理解你想要什么,你想要像

那样输入Java
%@ %#@hours@

转为psuedo代码输出,如

int k = new Scanner(System.in).nextInt() ;
int m = k * 2 ;
k = k + 1 ;

至少有三个阶段可以识别“输入语句”。一个是在解析期间。另一种是在解析和生成之间(即,转换或标记树的分析阶段)。第三个是在发电期间。

在这三个中,我建议第二个或第三个可能是最好的。解析已经足够复杂了。但是如果你真的想在解析过程中这样做,你可以结合使用语义和语法预测。

var k
read k
var m := k * 2
k := k + 1