Add recursive loop to support tree-like structures
[tedtools.git] / tmpltest.c
index c5aef19..a605f0b 100644 (file)
@@ -75,7 +75,8 @@ main(int argn, char *argv[]) {
        MemoryContext   *base;
        char                    *name = NULL;
        TemplateData    template;
-       int                     i;
+       int                     i,j,k;
+       int                             cnt=0;
        executeFunctionDescData funcs[] = {
                {"callcounter", 0, localCounter},
                {NULL,0,NULL}
@@ -142,9 +143,57 @@ main(int argn, char *argv[]) {
        addTemplateRow(&template, "outerLoop.innerLoop");
                setTemplateValueString(&template, "outerLoop.innerLoop.camenty", "Again 1");
 
+       for(i=0;i<3;i++) {
+               addTemplateRow(&template,"selfLoop");
+               setTemplateValueInt(&template, "selfLoop.CNT", ++cnt);
+               setTemplateValueString(&template, "selfLoop.NODE", "outer");
+
+               if (i<1) {
+                       addTemplateRow(&template,"selfLoop.oneloop");
+                       setTemplateValueInt(&template, "selfLoop.oneloop.CNT", ++cnt);
+                       setTemplateValueString(&template, "selfLoop.oneloop.NODE", "subloop1");
+               }
+               if (i<2) {
+                       addTemplateRow(&template,"selfLoop.oneloop");
+                       setTemplateValueInt(&template, "selfLoop.oneloop.CNT", ++cnt);
+                       setTemplateValueString(&template, "selfLoop.oneloop.NODE", "subloop2");
+               }
+
+               addTemplateNestedLoop(&template, "selfLoop");
+       
+               for(j=0;j<2;j++) {
+                       addTemplateRow(&template,"selfLoop");
+                       setTemplateValueInt(&template, "selfLoop.CNT", ++cnt);
+                       setTemplateValueString(&template, "selfLoop.NODE", "inner");
+                       if ( i==1 && j==0 ) {
+                               addTemplateRow(&template,"selfLoop.oneloop");
+                               setTemplateValueInt(&template, "selfLoop.oneloop.CNT", ++cnt);
+                               setTemplateValueString(&template, "selfLoop.oneloop.NODE", "subloop3");
+                       }
+                       if (i==2 && j==1) {
+                               addTemplateNestedLoop(&template, "selfLoop");
+                               for(k=0;k<4;k++) {
+                                       addTemplateRow(&template,"selfLoop");
+                                       setTemplateValueInt(&template, "selfLoop.CNT", ++cnt);
+                                       setTemplateValueString(&template, "selfLoop.NODE", "innerst");
+                                       if ( k==2 ) {
+                                               addTemplateRow(&template,"selfLoop.oneloop");
+                                               setTemplateValueInt(&template, "selfLoop.oneloop.CNT", ++cnt);
+                                               setTemplateValueString(&template, "selfLoop.oneloop.NODE", "subloop4");
+                                       }
+                               }
+                               returnTemplateNestedLoop(&template, "selfLoop");
+                       }
+               }
+       
+
+               returnTemplateNestedLoop(&template, "selfLoop");
+       }
+
        fputs("================================================\n", stdout);
        printTemplate( &template );
 
+
        resetTemplate(&template);
        freeTemplate(&template);