OSDN Git Service

CHNLIB_UIPArray_GetSeparatedStringByUIPArrayの仕様を変更。
[chnosproject/CHNOSProject.git] / CHNOSProject / c2wiki / c2wiki / main.c
index 5a97057..f4cba72 100644 (file)
@@ -15,6 +15,7 @@ int main(int argc, const char * argv[])
     CHNLIB_String *line;
     CHNLIB_UIPArray *root, *wordlist;
     int i, i_max;
+    int level, recording;
     
     CHNLIB_Environment_SetCurrentWorkingDirectory(argv[0]);
     
@@ -32,7 +33,7 @@ int main(int argc, const char * argv[])
     wordlist = CHNLIB_UIPArray_Initialize();
     CHNLIB_UIPArray_AppendLast(&wordlist, 1, CHNLIB_String_Initialize("{"));
     CHNLIB_UIPArray_AppendLast(&wordlist, 2, CHNLIB_String_Initialize("}"));
-    //CHNLIB_UIPArray_AppendLast(&wordlist, 1, CHNLIB_String_Initialize(""));
+    CHNLIB_UIPArray_AppendLast(&wordlist, 3, CHNLIB_String_Initialize("//"));
     
     root = CHNLIB_UIPArray_Initialize();
     for(;;){
@@ -48,10 +49,36 @@ int main(int argc, const char * argv[])
     i_max = CHNLIB_UIPArray_GetNumberOfDatas(root);
     fp = fopen("out.txt", "wb");
     
+    recording = False;
+    level = 0;
     for(i = 0; i < i_max; i++){
-    
+        switch(CHNLIB_UIPArray_GetData32ByIndex(root, i)){
+            case 1: //"{"
+                if(level == 0){
+                    fprintf(fp, "***%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i - 1)));
+                    recording = True;
+                } else if(recording){
+                    recording = False;
+                    fprintf(fp, "\n");
+                }
+                level++;
+                break;
+            case 2: //"}"
+                if(recording){
+                    recording = False;
+                    fprintf(fp, "\n");
+                }
+                level--;
+                break;
+            case 3: //"//"
+                if(recording){
+                    i++;
+                    fprintf(fp, "%s\n", CHNLIB_String_GetReferencePointerOfCString(CHNLIB_UIPArray_GetPointerByIndex(root, i)));
+                }
+                break;
+        }
     }
-    
+    fflush(fp);
     fclose(fp);
     
     return 0;