The BNF Playground is built on the Nearley Parser. The grammar for BNF was written and compiled in nearley.js (greatly with the aid of the nearley playground). Your entered specification is then parsed using this definition, followed by basic semantic analysis (are all non-terminals defined exactly once?) If all is well, the grammar is then transpiled into a nearley.js specification which is in turn compiled into a nearley grammar which is used for string testing. String generation is provided by cemulate from his git project here.
Problems, suggestions, or thanks can be emailed to pauliankline [(at)] gma1l ([dot]) c0m.