Recursive Grammars can look like this :
Digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Sign -> + | -
Integer -> (sign) Digit {Digit}
Float -> Integer (. (Integer))
EFloat -> Float E Integer
Define your symbols…
{} = zero or more instances of this
() = one optional instance of this
Then use the pieces to build formulae
Expression = Integer
Expression = Float
Expression = Expression * Expression
Expression = Expression + Expression
Expression = Expression - Expression
Expression = Expression / Expression
...
Expression = ( Expression )
Depending on how you build things you get various grammar. The one above is an example and (hopefully) clearly contains mistakes.