To add some color: Without much difficulty I was able to build a small POP3 server by describing the protocol as a Ragel grammar with the verbs implemented as semantic actions (a small amount of Go). It reads very nicely compared to a hand-built version of the same thing. The only real downside I found was that it was hard to tell what&#x27;s wrong when your grammar isn&#x27;t behaving as expected but no worse than other parser generators I&#x27;ve used.