Return a bindings graph associating symbols with their binders. It is a
list of elements (OCCURRENCE LEN BINDING) where OCCURRENCE is a buffer
-position where a symbol of length LEN occurs, which is bound by another
-occurrence of the same symbol that starts at position BINDING. If
-OCCURRENCE is itself a binding occurrence, then BINDING and OCCURRENCE
-are equal. If OCCURRENCE is not lexically bound, then BINDING is nil.
+position where a symbol of length LEN occurs, which is lexically bound
+at position BINDING. If OCCURRENCE is itself a binding occurrence, then
+BINDING is equal to OCCURRENCE. If OCCURRENCE is variable that is not
+lexically bound, then BINDING is nil. If OCCURRENCE is a function name,
+then BINDING is \\+`function'.
This function recursively analyzes Lisp forms (HEAD . TAIL), usually
starting with a top-level form, by inspecting HEAD at each level:
running Emacs session, analzye the form as a function call.
- Standard macros and special forms, such as `defun', `if', `let',
- `pcase', quotes, backquotes and more, are handled specially according
- to their particular semantics.
+ `pcase', `cl-loop', quotes, backquotes and more, are handled specially
+ according to their particular semantics.
- If HEAD has the property symbol `scope-function', the value of this
property is used to analyze TAIL. It should be a function that takes