]> Kevux Git Server - fll/commit
Update: Add "and" and "or" operations, operation if-then-else logic, and some cleanups.
authorKevin Day <thekevinday@gmail.com>
Thu, 23 Dec 2021 03:59:47 +0000 (21:59 -0600)
committerKevin Day <thekevinday@gmail.com>
Thu, 23 Dec 2021 03:59:47 +0000 (21:59 -0600)
commit2d6dc239e7348d8b6ebd35f3bade54b9a1ad3556
tree14ce40fd84f4e0f928eede71b2956c54e7edad2a
parenta6d62c0eb245875b340f9e3b240f75029319d099
Update: Add "and" and "or" operations, operation if-then-else logic, and some cleanups.

Add the "and" and "or" operations to make the "if" and "else" operations more complete.
The current design still does not support directly nested multiple operations underneath an "if" or an "else".
Using an "operate" operation is still the only way to do this.
The reason for this is to keep the logic and design simple.
This has a cost of causing complicated design to be even more complicated than they otherwise could be if I allowed "if" and "else" to contain blocks of commands or even be nested.

While I am at it, this cleans up the if-then-else logic.
This needed to be done for some time.
My original design was patched at some point to add unexpected functionality that I had not originally planned but later realized I needed.
The patch was just a good enough for now.
This resulted in the logic being a bit ugly and confusing.

The new logic is a lot better, but there are still some things that might be confusing.
To that end, I decided to only perform simple tests.
I instead intend to write unit tests that will perform all of the possible combinations that I can reasonably come up with.
This should help me find logic flaws in my current design.

This now uses a structure to pass the process state data.
This further simplifies the design to allow for fewer parameters in the relevant functions.

Several of the duplicated print calls are consolidated into a single print function.

I fixed some missing or incomplete documentation.
13 files changed:
level_3/fake/c/private-common.c
level_3/fake/c/private-common.h
level_3/fake/c/private-make-load_fakefile.h
level_3/fake/c/private-make-load_parameters.h
level_3/fake/c/private-make-operate-type.c
level_3/fake/c/private-make-operate-type.h
level_3/fake/c/private-make-operate.c
level_3/fake/c/private-make-operate.h
level_3/fake/c/private-make.h
level_3/fake/c/private-print.c
level_3/fake/c/private-print.h
level_3/fake/documents/fakefile.txt
level_3/fake/specifications/fakefile.txt