There is both left and right recursion in the definition of <number>, but this EBNF (Wirth notation) uses iteration only:
number = digit { digit } [ "." digit { digit } ] .