JavaCC:嵌套 for 循环

标签 java loops for-loop javacc

我的问题是如何在 JavaCC 中创建嵌套 for 循环。

目前我有:

(
 < REPEAT >h=<NUMBER ><REPEAT >k=< NUMBER ><PRINT >t=< PHRASE ><ENDPRINT ><ENDREPEAT ><ENDREPEAT >
 {
   int hold = Integer.parseInt(h.image);
   int holdK = Integer.parseInt(k.image);

   for(int i =0; i < hold;i++)
   {
     for(int j =0; j < holdK;j++)
     {
       System.out.println(t.image);
     }
   }
 }
)

这显然允许单个嵌套循环工作,但我如何集成任意数量的嵌套循环。

一个例子是,如果用户想要创建

for(int i =0; i < x;i++)
{
 print;
  for(int j=0; j<k;j++)
  {
  print;
  for(int l=0;l<f;l++)
   {
     print;
   }
  }
}

任何帮助将不胜感激。谢谢。

最佳答案

您应该从适合您的语言的合理语法开始。由于我不懂这种语言,我只能猜测合理的语法是什么,但很可能是这样的。

Command --> REPEAT NUMBER Block ENDREPEAT | PRINT Phrase ENDPRINT
Block --> { Command }

其次,您不应该在解析过程中尝试解释该语言。先解析,后解释。这一点在 7.3 I'm writing a programming language interpreter; how do I deal with loops? 下的 FAQ 中有介绍。 .

关于JavaCC:嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24636406/

相关文章:

c++ - 打印多列表的索引

javascript - 为什么 for 循环有时会跳过一些迭代?

用级数计算 pi

java - 集群中的静态变量访问

java - 有启动远程 JVM 的替代方法吗?

java - 带有 ImageView 的线性布局在膨胀后不会出现

java - "private"修饰符是否也确保Java中的线程安全

c++ - 意外的无限循环 (C++)

java - 从一个数组中获取数据来创建另一个数组。这个循环有什么问题?

java - for 循环在第一个循环后无法正常工作