Probably gonna use Ragel, sorry Evan