idForNodeKind method

int? idForNodeKind(
  1. String kind, {
  2. required bool named,
})

Implementation

int? idForNodeKind(String kind, {required bool named}) {
  // Preserve `language.c`'s builtin prefix comparison exactly, including
  // zero-length and partial `ERROR` names.
  if (named && 'ERROR'.startsWith(kind)) {
    return treeSitterBuiltinErrorSymbol;
  }
  for (var symbol = 0; symbol < symbols.length; symbol++) {
    final metadata = symbols[symbol];
    if ((!metadata.visible && !metadata.supertype) ||
        metadata.named != named) {
      continue;
    }
    if (metadata.name == kind) return publicSymbol(symbol);
  }
  return null;
}