Book Image

LLVM Cookbook

Book Image

LLVM Cookbook

Overview of this book

Table of Contents (16 chapters)
LLVM Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

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['<'] = 0;
  …
...