code: def __init__(self, rules: Dict[str, Rule]) -> None:
      self.rules = rules
      self.nullables = compute_nullables(rules)
      self.first_sets: Dict[str, Set[str]] = dict()
      self.in_process: Set[str] = set()
  
imports: import argparse
  import pprint
  import sys
  from typing import Dict, Set
  from pegen.build import build_parser
  from pegen.grammar import Alt, Cut, Gather, GrammarVisitor, Group, Lookahead, NamedItem, NameLeaf, NegativeLookahead, Opt, Repeat0, Repeat1, Rhs, Rule, StringLeaf
  from pegen.parser_generator import compute_nullables
label_desc: Use image node_id 1 to create a new FirstSetCalculator object from inherited base classes: GrammarVisitor with example: obj = FirstSetCalculator(rules)