# Context Free Grammar A context free grammar If we are looking at a EBNF specification such as: ``` value: dict | list | STRING | NUMBER | "true" | "false" | "null" list : "[" [value ("," value)*] "]" dict : "{" [pair ("," pair)*] "}" pair : STRING ":" value ``` We know that it is a **context free grammar** because there is only one value on the left. For instance, we see that `value` only occurs once. No matter what the *context* (where we are in a program for instance) `value` will be the same thing. --- Date: 20211109 Links to: Tags: References: * []()