code: def test_lookahead(self) -> None:
      grammar = """
          start: (expr_stmt | assign_stmt) &'.'
          expr_stmt: !(target '=') expr
          assign_stmt: target '=' expr
          expr: term ('+' term)*
          target: NAME
          term: NUMBER
          """
      parser_class = make_parser(grammar)
      node = parse_string("foo = 12 + 12 .", parser_class)
      self.maxDiff = None
      self.assertEqual(
          node,
          [
              TokenInfo(
                  NAME,
                  string="foo",
                  start=(1, 0),
                  end=(1, 3),
                  line="foo = 12 + 12 .",
              ),
              TokenInfo(
                  OP,
                  string="=",
                  start=(1, 4),
                  end=(1, 5),
                  line="foo = 12 + 12 .",
              ),
              [
                  TokenInfo(
                      NUMBER,
                      string="12",
                      start=(1, 6),
                      end=(1, 8),
                      line="foo = 12 + 12 .",
                  ),
                  [
                      [
                          TokenInfo(
                              OP,
                              string="+",
                              start=(1, 9),
                              end=(1, 10),
                              line="foo = 12 + 12 .",
                          ),
                          TokenInfo(
                              NUMBER,
                              string="12",
                              start=(1, 11),
                              end=(1, 13),
                              line="foo = 12 + 12 .",
                          ),
                      ]
                  ],
              ],
          ],
      )
  
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 21 for calling the TestPegen obj's underlying member method code with example usage: obj.test_lookahead() without return types