Recursive Descent Parser
Create a top-down parser using control flow for grammar operators and recursive functions for nonterminal recognizers.
Many DSLs are quite simple as languages. While the flexibility of external languages is appealing, using a Parser Generator to create a parser introduces new tools and languages into a project, complicating the build process.
A Recursive Descent Parser supports the flexibility of an external DSL without requiring a Parser Generator . The Recursive Descent Parser can be implemented in whatever general-purpose language one chooses. It uses control flow operators to implement the various grammar operators. Individual methods or functions implement the parsing rules for the different nonterminal symbols in the grammar.
For more details see chapter 21 of the DSL book