code: def test_left_recursion_too_complex(self) -> None:
      grammar = """
          start: foo
          foo: bar '+' | baz '+' | '+'
          bar: baz '-' | foo '-' | '-'
          baz: foo '*' | bar '*' | '*'
          """
      with self.assertRaises(ValueError) as errinfo:
          make_parser(grammar)
          self.assertTrue("no leader" in str(errinfo.exception.value))
  
imports: import ast
  import difflib
  import io
  import textwrap
  import unittest
  from test import test_tools
  from typing import Dict, Any
  from tokenize import TokenInfo, NAME, NEWLINE, NUMBER, OP
label_desc: Use image node_id 25 for calling the TestPegen obj's underlying member method code with example usage: obj.test_left_recursion_too_complex() without return types