The parser allows us to parse static structure. However most languages, such as Idris, allow users to define data, functions and operations. We therefore need the parser to know about these structures that have alredy been compiled. This is even more complicated for operations because the precidence can also be set by the user.