diff --git a/lark/parsers/earley.py b/lark/parsers/earley.py index a98be02..ff4e125 100644 --- a/lark/parsers/earley.py +++ b/lark/parsers/earley.py @@ -10,6 +10,7 @@ is better documented here: http://www.bramvandersanden.com/post/2014/06/shared-packed-parse-forest/ """ +import logging from collections import deque from ..visitors import Transformer_InPlace, v_args @@ -299,8 +300,13 @@ class Parser: solutions = [n.node for n in columns[-1] if n.is_complete and n.node is not None and n.s == start_symbol and n.start == 0] if self.debug: from .earley_forest import ForestToPyDotVisitor - debug_walker = ForestToPyDotVisitor() - debug_walker.visit(solutions[0], "sppf.png") + try: + debug_walker = ForestToPyDotVisitor() + except ImportError: + logging.warning("Cannot find dependency 'pydot', will not generate sppf debug image") + else: + debug_walker.visit(solutions[0], "sppf.png") + if not solutions: expected_tokens = [t.expect for t in to_scan]