Ccide reads a source program, in one of several programming languages, expands all embedded decision tables, and generates
the new, expanded source.
Ccidew processes C language programs directly. The script, ccide, uses
ccidew and m4, to process BASIC, JAVA, CC, C++, BASH, QB, VB, and EX(euphoria), source files containing embedded decision tables.
Ccide checks all conditions once and only once, avoiding side effects.
Ccide checks tables for conflicts and other errors.
// 1 3 2 2 | light == $$ /* 1=red, 2= yellow, 3=green. */
// N - - - | speed == STOPPED
// - - Y - | speed == SLOW
// - N - Y | speed == FAST
// X - X - | Stop();
// - - - X | SlowDown();
// - X - - | SpeedUp();
This is a wonderful idea! I plan to use this software to help programming students better understand how decisions can be represented in programming logic. Comparing the tables to standard if/then else constructs is educational. Since the source is distributed, students can also see an interesting implementation of a state machine.