changeset 1020:bf4e8bfdb2c3

fix cd
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Tue, 25 Jan 2022 18:10:47 +0900
parents e0a60e5f7f4f
children 56dfb90b2939
files src/parallel_execution/examples/gearsDirectory/GearsDirectoryImpl.cbc src/parallel_execution/examples/gearsDirectory/GearsDirectory_test.cbc src/parallel_execution/plautogen/impl/FileSystemTree.h
diffstat 3 files changed, 28 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/examples/gearsDirectory/GearsDirectoryImpl.cbc	Mon Jan 24 17:05:11 2022 +0900
+++ b/src/parallel_execution/examples/gearsDirectory/GearsDirectoryImpl.cbc	Tue Jan 25 18:10:47 2022 +0900
@@ -83,7 +83,7 @@
     goto cDirectory->get(node, cd2Child2);
 }
 
-__code cd2Child2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node0, __code next(...)) {
+__code cd2Child2(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
     // treeを作る
     // struct FTree* tree = new FileSystemTree();
     // currentDirectoryを作ったtreeに変更する
@@ -93,8 +93,10 @@
     // struct Stack* ds = gearsDirectory->directoryStack;
 
     // searchの結果,存在すればcurrentDirectoryにsearchしたtreeをsetする
-    gearsDirectory->currentDirectory = node0->value;
-    goto next(...);
+    struct FTree* iNodeTree = new FTree();
+    iNodeTree = gearsDirectory->iNodeTree;
+
+    goto iNodeTree->get(node->value, cd2Child3);
     // gato ds->push(parentDirectory, next(...));
 }
 
@@ -105,6 +107,19 @@
 	goto cd2Child2(context, gearsDirectory, node0, next);
 }
 
+__code cd2Child3(struct GearsDirectoryImpl* gearsDirectory, struct Node* node, __code next(...)) {
+    gearsDirectory->currentDirectory = node->value;
+    goto next(...);
+}
+
+__code cd2Child3_stub(struct Context* context) {
+	GearsDirectoryImpl* gearsDirectory = (GearsDirectoryImpl*)GearImpl(context, GearsDirectory, gearsDirectory);
+	Integer* name = Gearef(context, FTree)->node;
+	enum Code next = Gearef(context, GearsDirectory)->next;
+	goto ls2(context, gearsDirectory, name, next);
+}
+
+
 
 __code cd2Parent(struct GearsDirectoryImpl* gearsDirectory, __code next(...)) {
     // struct Stack* ds = gearsDirectory->directoryStack;
--- a/src/parallel_execution/examples/gearsDirectory/GearsDirectory_test.cbc	Mon Jan 24 17:05:11 2022 +0900
+++ b/src/parallel_execution/examples/gearsDirectory/GearsDirectory_test.cbc	Tue Jan 25 18:10:47 2022 +0900
@@ -6,7 +6,7 @@
 __code task1(GearsDirectory* gearsDirectory){     
     Integer* name = new Integer();
     name->value = 1;
-    goto gearsDirectory->mkdir(name, task4);
+    goto gearsDirectory->mkdir(name, task2);
 }
 
 __code task1_stub(struct Context* context){
@@ -16,8 +16,8 @@
 
 __code task2(GearsDirectory* gearsDirectory){
     Integer* name = new Integer();
-    name->value = 1;
-    goto gearsDirectory->cd2Child(name, task3);
+    name->value = 2;
+    goto gearsDirectory->ls(name, task3);
 }
 
 __code task2_stub(struct Context* context){
@@ -26,7 +26,9 @@
 }
 
 __code task3(GearsDirectory* gearsDirectory){
-    goto gearsDirectory->cd2Parent(exit_code);
+    Integer* name = new Integer();
+    name->value = 2;
+    goto gearsDirectory->cd2Child(name, exit_code);
 }
 
 __code task3_stub(struct Context* context){
@@ -34,28 +36,15 @@
     goto task3(context, gearsDirectory);
 }
 
-__code task4(GearsDirectory* gearsDirectory){     
-    Integer* name = new Integer();
-    name->value = 2;
-    goto gearsDirectory->mkdir(name, task5);
+__code task4(GearsDirectory* gearsDirectory){
+    goto gearsDirectory->cd2Parent(exit_code);
 }
 
 __code task4_stub(struct Context* context){
-    GearsDirectory* gearsDirectory = createGearsDirectoryImpl(context);
+    GearsDirectory* gearsDirectory = (struct GearsDirectory*)Gearef(context, GearsDirectory)->gearsDirectory;
     goto task4(context, gearsDirectory);
 }
 
-__code task5(GearsDirectory* gearsDirectory){
-    Integer* name = new Integer();
-    name->value = 2;
-    goto gearsDirectory->ls(name, exit_code);
-}
-
-__code task5_stub(struct Context* context){
-    GearsDirectory* gearsDirectory = (struct GearsDirectory*)Gearef(context, GearsDirectory)->gearsDirectory;
-    goto task5(context, gearsDirectory);
-}
-
 int main(int argc, char** argv) {
     printf("main\n");
     goto task1();
--- a/src/parallel_execution/plautogen/impl/FileSystemTree.h	Mon Jan 24 17:05:11 2022 +0900
+++ b/src/parallel_execution/plautogen/impl/FileSystemTree.h	Tue Jan 25 18:10:47 2022 +0900
@@ -8,4 +8,5 @@
   struct Stack* nodeStack;
   __code findNodeNext(...);
   int result;
+  int inum;
 } FileSystemTree;