, this is used
to provide rapid lookup of various information.  For example, when
parsing a '#define' statement, CPP flags each argument's identifier hash
node with the index of that argument.  This makes duplicated argument
checking an O(1) operation for each argument.  Similarly, for each
identifier in the macro's expansion, lookup to see if it is an argument,
and which argument it is, is also an O(1) operation.  Further, each
directive name, such as 'endif', has an associated directive enum stored
in its hash node, so that directive lookup is also O(1).

