Theory of Automata: Context-free Grammars & RNNs πŸ“š