Have you been stuck, trying to make an expression parser but you just can’t? Well just put this in your parser gen, and you’ll be good to go!

$$\begin{array}{rl}
E \rightarrow& E_\alpha;E_\beta \
E_\alpha \rightarrow& (;E;) \
& \gamma \
& \sigma_{pre};E \
E_\beta \rightarrow&\sigma_{in};E\
& \sigma_{post};\
& \epsilon
\end{array}
$$
And to wrap it all up:

$$
\begin{aligned}
N &\in \lbrace{E\rbrace} \
\Sigma &\in \gamma \cup \sigma \
S &\in \sigma
\end{aligned}
$$

and:

$$
\left\langle N,\Sigma, R, S \right\rangle
$$


Where:

$$\begin{array}{rl}
\gamma &= \text{Terminal literals} \\
\sigma &= \begin{cases}
\begin{array}{ll}
a_{pre} &= \text{Prefix operators} \\
a_{in} &= \text{Infix operators} \\
a_{post} &= \text{Postfix operators}
\end{array}
\end{cases} \\
\end{array}$$


TIL greek letters make you look smart.