Recursive Descent: Example 4/4
function F: boolean;
begin
  F := false;
  if token = '(' then begin
     { simulation of rule 7: F ® (E) }
     GetNextToken;
     if E then begin
        F := (token = ')');
        GetNextToken;
     end;
  end
  else
  if token = 'i' then begin
     { simulation of rule 8: F ® i }
     F := true;
     GetNextToken;
  end;
end;
• For F Î N: Rules 7: F ® (E) ,  8: F ® i
E
E’
T
T’
F
i
+
(
1
4
8
*
)
$
1
4
7
2
6
5
3
6
3
6
Main body:
begin
  GetNextToken;
  if E then
     write('OK')
  else
     write('ERROR')
end.
45/57
7
8