Mercurial > hg > Gears > Gears
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();