Develop the context free grammar to match this language (puzzle)
X --&gt; Xa | Xb | Y

Y --&gt; aYa | bYb | #Z

Z --&gt; Za | Zb | empty


Y is the part that handles the string reversal. X and Z handle junk to the right and left of the reversal of x.