Handling decision making paradigms – if/then/else constructs
In any programming language, executing a statement based on certain conditions gives a very powerful advantage to the language. The if
/then
/else
constructs provide the capability to alter the control flow of a program, based on certain conditions. The condition is present in an if
construct. If the condition is true, the expression following the then
construct is executed. If it is false
, the expression following the else
construct is executed. This recipe demonstrates a basic infrastructure to parse and generate code for the if
/then
/else
construct.
Getting ready
The TOY language for if
/then
/else
can be defined as:
if x < 2 then x + y else x - y
For checking a condition, a comparison operator is required. A simple less than operator, <
, will serve the purpose. To handle <
, precedence needs to be defined in the init_precedence()
function, as shown here:
static void init_precedence() { Operator_Precedence['<...