### Rule syntax

The decision logic is specified in multiple rules.

#### Rule

A rule consists of a list of one or more statements.

#### Statement

A statement always ends with a ';' semi-colon. Multiple statements can be combined.

Example:

`<statement> ; <statement> ;`

or:

```<statement> ;
<statement> ;```

There are 2 kinds of statements:

• if-statement

• assignment

#### The "if" statement

An "if" statement can have the following forms ;

`if( <expression> ) { <statements> } else { <statements> };`
`if( <expression> ) { <statements> } ;`

The else part is optional.

If the expression evaluates to non-zero the first statements will be executed.

If the expression evaluates to zero the next list of statements will be executed. The 'else' part of the if statement.

For example:

```if( temp > 10 ) {
fan = 1 ;
} else {
fan = 0 ;
}```

#### Expression

An expression can be a single item or a combination of expressions.

Constants, for example:

```10
12345```

Variables, for example:

```temp
fan```

Operator expressions are formed as:

`<expression> <operator> <expression>`

For example, arithmetic expressions:

```a + z
b / c
d * e
f - g```

Boolean expressions:

```a < 10
b < c
c > d
e == f
e <= f
e >= f```

#### Assignment

A assignment consists of a left part and a right part combined with an '=' (equal) sign. The left part should always be a variable reference. The right part is an expression.

`<variable> = <expression> ;`

For example:

`temp = temp2 - 10 ;`