- Minor cleanups and improvements. - Added Production.is_epsilon method. - Added Productions.has_epsilon_productions method. - Added Grammar.has_epsilon_productions method. - Improved TopDownInstantaneousDescription and BottomUpInstantaneousDescription to handle epsilon productions. - Added Tree.__eq__ and Tree.__hash__ methods (to allow Stack of trees comparison, required to avoid loops in simulations of automata combinations).
1.9.1
-------------------
- Major rewriting of the HTML styles for tables (to improve VScode and Quarto compatibility). - Added an embed_css function and a CUSTOM_CSS constant. - Moved Table and CYKTable from liblet.utils to liblet.display. - Introduced deprecation_warning to distinguish from warn (liblet internal function)
1.8.0
-------------------
- Deprecated first, to extract an element from a set there is set.pop. - Deprecated pyast2tree, not is the from_pyast factory method of Tree. - Production if the rhs is the empty tuple or list is created as an epsilon rule. - Added equals and hash to InstantaneousDescription that can be used to avoid loops in simulations.
1.7.9
-------------------
- Updated conf.py because Sphinx does not like versions.html anymore.
1.7.8
-------------------
- Updated .readthedocs.yml to include sphinx configuration.