def test_join(self): rule = easyparse.join(easyparse.PatternRule('a'), easyparse.PatternRule('q', ignore_output=True)) self.assertEqual((True, easyparse.Ignored), rule.parse('')) self.assertEqual((True, ['a']), rule.parse('a')) self.assertEqual((True, ['a', 'a']), rule.parse('aqa')) self.assertEqual((True, ['a']), rule.parse('aa'))
def test_parse_large_stack_with_join(self): rule = easyparse.join(easyparse.parse('a'), easyparse.ignore(';')) ok, result = rule.parse('a;' * 999 + 'a') self.assertTrue(ok) self.assertEqual(['a'] * 1000, result)