Let the alphabet $\Sigma$ be extended to include $\bullet$, the concatenation point character. Define concatenation of such strings to be: (by example):
$$ s\cdot t = (\omega \bullet \gamma ) \cdot t = \omega t \gamma $$
$s$ inherits $t$'s concatenation points obviously.
If $s$ has multiple concatenation points you fill in the concatenation points from left-to-right and if you're out of concatenation points, concatenate $t$ to the end of $s$ to get the result.
So then a syntax tree can be encoded as a member of the the weird algebraic structure.
Then we have a way of concatenating two syntax trees.