recursive descent parser

A "top-down" parser built from a set of
mutually-recursive procedures or a non-recursive equivalent
where each such procedure usually implements one of the
productions of the grammar. Thus the structure of the
resulting program closely mirrors that of the grammar it
recognises.