ReadonlybuiltInPrefix: "built-in:"The prefix used for built-in function or operator ids.
Checks if a given node id is a built-in function or operator id by checking if it is a string that starts with the built-in prefix.
Whether the id belongs to a node the analyzed code writes. flowR wraps a deferred expression
(on.exit and its relatives) in a definition of its own, and that definition carries an id no node
of the ast does.
Converts a built-in function or operator name or id to a built-in id by prefixing it with the built-in prefix if it is not already a built-in id. This allows us to accept both built-in names and ids in contexts where we want to work with built-in ids.
Readonlyname: "NodeId"What the node the id belongs to stands for: the name a call resolved to, the unquoted name of a use, and the lexeme of anything else.
NodeId.recoverName - for the lexeme alone, which needs no graph
The lexeme of the node the id belongs to, as the analyzed code writes it.
NodeId.recoverContent - for what a call or a use stands for rather than how it is written
Converts a built-in function or operator name to a built-in id by prefixing it with the built-in prefix.
Inverse of fromPkgFn: split a package-function built-in id (built-in:pkg:fn) into its [pkg, fn]
parts, or undefined when id is not one (a non-builtin id, or a bare builtin without a package such as
built-in:print). A package name never contains a :, so the first one separates it from the function.
What a NodeId is: the identity of a node within one analysis, plus the built-in and
pkg::fnnames encoded as one, and the ways to read a name back out of it.