+\newcommand{\ATTRS}[1]{\langle#1\rangle}
+\newcommand{\ANNPOS}[2]{\mathit{pos}(#1)_{#2}}
+
+\begin{table}
+\caption{\label{tab:addparens} Where are parentheses added? Look here.\strut}
+\hrule
+\[
+\begin{array}{rcll}
+ \ADDPARENS{l}{n} & = & l \\
+ \ADDPARENS{\BREAK}{n} & = & \BREAK \\
+ \ADDPARENS{\ATTRS{\mathit{prec}=m}T}{n} & = & \ADDPARENS{T}{m} & n < m \\
+ \ADDPARENS{\ATTRS{\mathit{prec}=m}T}{n} & = & \FENCED{\ADDPARENS{T}{\bot}} & n > m \\
+ \ADDPARENS{\ATTRS{\mathit{prec}=n,\mathit{assoc}=L,\mathit{pos}=R}T}{n} & = & \FENCED{\ADDPARENS{T}{\bot}} \\
+ \ADDPARENS{\ATTRS{\mathit{prec}=n,\mathit{assoc}=R,\mathit{pos}=L}T}{n} & = & \FENCED{\ADDPARENS{T}{\bot}} \\
+ \ADDPARENS{\ATTRS{\cdots}T}{n} & = & \ADDPARENS{T}{n} \\
+ \ADDPARENS{L_\kappa[T_1,\dots,\underline{T_k},\dots,T_m]}{n} & = & L_\kappa[\ADDPARENS{T_1}{n},\dots,\ADDPARENS{T_k}{\bot},\dots,\ADDPARENS{T_m}{n}] \\
+ \ADDPARENS{B_\kappa^{ab}[T_1,\dots,T_m]}{n} & = & B_\kappa^{ab}[\ADDPARENS{T_1}{n},\dots,\ADDPARENS{T_m}{n}]
+\end{array}
+\]
+\hrule
+\end{table}
+
+\begin{table}
+\caption{\label{tab:annpos} Annotation of level 1 meta variable with position information.\strut}
+\hrule
+\[
+\begin{array}{rcll}
+ \ANNPOS{l}{p,q} & = & l \\
+ \ANNPOS{\BREAK}{p,q} & = & \BREAK \\
+ \ANNPOS{x}{1,0} & = & \ATTRS{\mathit{pos}=L}{x} \\
+ \ANNPOS{x}{0,1} & = & \ATTRS{\mathit{pos}=R}{x} \\
+ \ANNPOS{x}{p,q} & = & \ATTRS{\mathit{pos}=I}{x} \\
+ \ANNPOS{B_\kappa^{ab}[P]}{p,q} & = & B_\kappa^{ab}[\ANNPOS{P}{p,q}] \\
+ \ANNPOS{B_\kappa^{ab}[\{\BREAK\} P_1\cdots P_n\{\BREAK\}]}{p,q} & = & B_\kappa^{ab}[\begin{array}[t]{@{}l}
+ \{\BREAK\} \ANNPOS{P_1}{p,0} \\
+ \ANNPOS{P_2}{0,0}\cdots\ANNPOS{P_{n-1}}{0,0} \\
+ \ANNPOS{P_n}{0,q}\{\BREAK\}]
+ \end{array}
+
+%% & & L_\kappa[P_1,\dots,P_n] & \mbox{(layout)} \\
+%% & | & \BREAK & \mbox{(breakpoint)} \\
+%% & | & \FENCED{P_1\cdots P_n} & \mbox{(fenced)} \\
+%% V & ::= & & \mbox{(\bf variables)} \\
+%% & & \TVAR{x} & \mbox{(term variable)} \\
+%% & | & \NVAR{x} & \mbox{(number variable)} \\
+%% & | & \IVAR{x} & \mbox{(name variable)} \\[2ex]
+%% M & ::= & & \mbox{(\bf magic patterns)} \\
+%% & & \verb+list0+~P~l? & \mbox{(possibly empty list)} \\
+%% & | & \verb+list1+~P~l? & \mbox{(non-empty list)} \\
+%% & | & \verb+opt+~P & \mbox{(option)} \\[2ex]
+\end{array}
+\]
+\hrule
+\end{table}
+
+\section{Level 2: abstract syntax}