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
You could probably define a function which within its block argumentt overrides the kernel method_missing, so sentences don't need a set starting word.
And maybe you could use Ruby's method call or block syntax to hack parentheses or curly braces into your DSL?