docs: public static void updateComponentTokenCounts(final List<Token> tokens)
      {
          final Map<String, Deque<Integer>> map = new HashMap<>();
  
          for (int i = 0, size = tokens.size(); i < size; i++)
          {
              final Token token = tokens.get(i);
              final Signal signal = token.signal();
  
              if (signal.name().startsWith("BEGIN_"))
              {
                  final String componentType = signal.name().substring(6);
                  map.computeIfAbsent(componentType, (key) -> new LinkedList<>()).push(i);
              }
              else if (signal.name().startsWith("END_"))
              {
                  final String componentType = signal.name().substring(4);
                  final int beginIndex = map.get(componentType).pop();
  
                  final int componentTokenCount = (i - beginIndex) + 1;
                  tokens.get(beginIndex).componentTokenCount(componentTokenCount);
                  token.componentTokenCount(componentTokenCount);
              }
          }
      }