in reply to Parsing CCL (Common Command Language) commands

The best approach IMHO is not to reinvent the wheel. As CCL is a standard, (ANSI/NISO Z39.58-1992), it is hard to believe that code is not already available somewhere.
That said, the many implementations in library catalogs for example, are commercially sensitive and you may well have to roll your own.
On the positive side, much of the work has been done for you, given that you have the grammar. I would check out Damian Conway's module Parse::RecDescent. The following are useful starting sources:
Data Munging with Perl by davorg - I found this treatment of Parse::RecDescent particularly easy to digest
Damian Conway's TPJ article
Best of luck,