2014-07-08 1 views
0

질문은 JavaCC 내에서 중첩 된 for 루프를 만드는 방법입니다.JavaCC : for-loops 중첩

(
<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; 
    } 
    } 
} 

어떤 도움을 이해할 수있을 것이다을 만들려는 경우

예는 것입니다. 고맙습니다.

답변

2

당신의 언어에 맞는 적절한 문법으로 시작해야합니다. 언어를 모르기 때문에 나는 합리적인 문법이 무엇인지 추측 할 수는 있지만, 이런 식으로 생각할 수 있습니다.

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에서 다룹니다.

+0

나는 아직도 배울 것이 많지만 이것은 큰 도움이되었습니다. 감사합니다. – Richard

+1

@ 리차드 - 당신은 대답을 "받아 들일"수 있습니다, 그것은 답변이 큰 도움이되었다는 것을 시스템에 알립니다. –