A continuación se describe formalmente la gramática CCL:
CCL ::= CCL Op Elementos
| Elementos.
q Significa que los elementos son separados por operadores boleanos.
Op ::= "and" | "or" | "not"
q Elementos puede ser: una definición recursiva, una referencia a Set, una lista de términos, calificadores seguidos de términos, calificadores seguidos de una definición recursiva o calificadores en un rango (bajo - alto).
Elementos ::= '(' CCL-Find ')'
| Set
| Términos
| Calificadores Relación Términos
| Calificadores Relación '(' CCL ')'
| Calificadores '=' string '-' string
Set ::= 'set' = string
q Proximidad de términos.
Términos ::= Términos Prox Términos
| Términos
q Básicamente indica que in termino puede incluir un blanco.
Términos ::= Términos string
| string
q Calificadores es una lista de strings separadas por comas.
Calificadores ::= Calificadores ',' string
| string
q Operadores de relación.
Relación::= '=' | '>=' | '<=' | '<>' | '>' | '<'
q Operadores de proximidad
Prox ::= '%' | '!'