diff --git a/lark/grammar.py b/lark/grammar.py index 1d226d9..016496b 100644 --- a/lark/grammar.py +++ b/lark/grammar.py @@ -16,7 +16,8 @@ class Symbol(Serialize): self.name = name def __eq__(self, other): - assert isinstance(other, Symbol), other + if not isinstance(other, Symbol): + return NotImplemented return self.is_term == other.is_term and self.name == other.name def __ne__(self, other): diff --git a/tests/test_grammar.py b/tests/test_grammar.py index 624b079..52425db 100644 --- a/tests/test_grammar.py +++ b/tests/test_grammar.py @@ -6,7 +6,7 @@ from unittest import TestCase, main from lark import Lark, Token, Tree, ParseError, UnexpectedInput from lark.load_grammar import GrammarError, GRAMMAR_ERRORS, find_grammar_errors, list_grammar_imports from lark.load_grammar import FromPackageLoader - +from lark.grammar import Symbol class TestGrammar(TestCase): def setUp(self): @@ -296,8 +296,11 @@ class TestGrammar(TestCase): p.parse('ab') + def test_symbol_eq(self): + a = None + b = Symbol("abc") - + self.assertNotEqual(a, b) if __name__ == '__main__':