* lisp/progmodes/ebnf2ps.el: Use lexical-binding; fix warnings
(ebnf-eps-executing): Declare var.
(ebnf-eps-string): Clarify regexp; don't use string-as-unibyte since we're
manipulating chars rather than bytes.
(ebnf-tree): Move declaration before first use.
(ebnf-generate-eps, ebnf-generate): Don't use dyn-var as argument.
(ebnf-generate-eps): Use cl-letf and unwind-protect.
(ebnf-eps-production-list): Get a ref rather than a symbol.
(ebnf-generate-eps): Adjust call accordingly.