If you write a parser as a Ruby object that consumes its method_missing arguments, I guess you could just do full blown NLP or define any context-free grammar as a DSL?
RT @dmitrytsepelev@twitter.com
Check out my experimental gem for creating natural–ish DSLs with Ruby 🙂 Link: https://github.com/DmitryTsepelev/natural_dsl
🐦🔗: https://twitter.com/dmitrytsepelev/status/1554407425482047488
And maybe you could use Ruby's method call or block syntax to hack parentheses or curly braces into your DSL?