Created
November 15, 2017 13:16
-
-
Save jmercouris/c3c7431fc8b6ab9388a6d7c34e437478 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defparameter *d* (digraph:make-digraph :initial-vertices '(alert | |
appkit-version assoc-array attributed-strings binding-utils | |
class-convert coder coerce-obj combo-box-source custom-app-init date | |
debug decimal doc-controller-hash file-directory-utils file-monitor | |
hist-dt install-executable interactive-app interface-packages | |
iu-classes kvo-slot lc-classes lisp-bundle lisp-controller | |
lisp-doc-controller lisp-document lisp-notification list-utils | |
menu-utils nib-link nib notification ns-object-utils ns-string-utils | |
nslog-utils objc-initialize objc-method-info open-panel opengl-utils | |
or-semaphore path-trans preferences quick-window save-panel | |
selector-utils tagged-dates ts-queue undo utility window-controller | |
window-utils words button constraint-layout lisp-app-pr-view | |
lv-classes organized-box-view radio-button scroll-view table-utils | |
text-views view-utils lisp-app-delegate dev-tools builder-utilities save-gui-app))) | |
(digraph:insert-edge *d* 'alert 'interface-packages) | |
(digraph:insert-edge *d* 'alert 'ns-string-utils) | |
(digraph:insert-edge *d* 'appkit-version 'interface-packages) | |
(digraph:insert-edge *d* 'quick-window 'interface-packages) | |
(digraph:insert-edge *d* 'quick-window 'ns-string-utils) | |
(digraph:insert-edge *d* 'preferences 'interface-packages) | |
(digraph:insert-edge *d* 'preferences 'ns-object-utils) | |
(digraph:insert-edge *d* 'path-trans 'iu-classes) | |
(digraph:insert-edge *d* 'path-trans 'nslog-utils) | |
(digraph:insert-edge *d* 'path-trans 'ns-string-utils) | |
(digraph:insert-edge *d* 'path-trans 'assoc-array) | |
(digraph:insert-edge *d* 'or-semaphore 'iu-classes) | |
(digraph:insert-edge *d* 'opengl-utils 'interface-packages) | |
(digraph:insert-edge *d* 'open-panel 'interface-packages) | |
(digraph:insert-edge *d* 'open-panel 'coerce-obj) | |
(digraph:insert-edge *d* 'open-panel 'ns-object-utils) | |
(digraph:insert-edge *d* 'objc-method-info 'interface-packages) | |
(digraph:insert-edge *d* 'objc-initialize 'interface-packages) | |
(digraph:insert-edge *d* 'objc-initialize 'coerce-obj) | |
(digraph:insert-edge *d* 'objc-initialize 'selector-utils) | |
(digraph:insert-edge *d* 'objc-initialize 'list-utils) | |
(digraph:insert-edge *d* 'objc-initialize 'file-directory-utils) | |
(digraph:insert-edge *d* 'nslog-utils 'interface-packages) | |
(digraph:insert-edge *d* 'nslog-utils 'ns-string-utils) | |
(digraph:insert-edge *d* 'ns-string-utils 'iu-classes) | |
(digraph:insert-edge *d* 'ns-object-utils 'iu-classes) | |
(digraph:insert-edge *d* 'ns-object-utils 'ns-string-utils) | |
(digraph:insert-edge *d* 'ns-object-utils 'binding-utils) | |
(digraph:insert-edge *d* 'ns-object-utils 'nslog-utils) | |
(digraph:insert-edge *d* 'ns-object-utils 'date) | |
(digraph:insert-edge *d* 'ns-object-utils 'alert) | |
(digraph:insert-edge *d* 'ns-object-utils 'decimal) | |
(digraph:insert-edge *d* 'notification 'objc-initialize) | |
(digraph:insert-edge *d* 'notification 'selector-utils) | |
(digraph:insert-edge *d* 'nib 'interface-packages) | |
(digraph:insert-edge *d* 'nib 'file-directory-utils) | |
(digraph:insert-edge *d* 'nib 'interactive-app) | |
(digraph:insert-edge *d* 'nib-link 'iu-classes) | |
(digraph:insert-edge *d* 'menu-utils 'iu-classes) | |
(digraph:insert-edge *d* 'menu-utils 'selector-utils) | |
(digraph:insert-edge *d* 'menu-utils 'ns-object-utils) | |
(digraph:insert-edge *d* 'menu-utils 'nib) | |
(digraph:insert-edge *d* 'list-utils 'interface-packages) | |
(digraph:insert-edge *d* 'lisp-notification 'iu-classes) | |
(digraph:insert-edge *d* 'lisp-document 'objc-initialize) | |
(digraph:insert-edge *d* 'lisp-document 'menu-utils) | |
(digraph:insert-edge *d* 'lisp-document 'lisp-controller) | |
(digraph:insert-edge *d* 'lisp-document 'lisp-app-pr-view) | |
(digraph:insert-edge *d* 'lisp-document 'lisp-bundle) | |
(digraph:insert-edge *d* 'lisp-document 'window-controller) | |
(digraph:insert-edge *d* 'lisp-document 'quick-window) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'iu-classes) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'menu-utils) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'selector-utils) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'nslog-utils) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'lisp-bundle) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'lisp-document) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'lisp-app-delegate) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'doc-controller-hash) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'nib) | |
(digraph:insert-edge *d* 'lisp-doc-controller 'open-panel) | |
(digraph:insert-edge *d* 'lisp-controller 'interface-packages) | |
(digraph:insert-edge *d* 'lisp-controller 'lc-classes) | |
(digraph:insert-edge *d* 'lisp-controller 'coerce-obj) | |
(digraph:insert-edge *d* 'lisp-controller 'ns-string-utils) | |
(digraph:insert-edge *d* 'lisp-controller 'ns-object-utils) | |
(digraph:insert-edge *d* 'lisp-controller 'nslog-utils) | |
(digraph:insert-edge *d* 'lisp-controller 'undo) | |
(digraph:insert-edge *d* 'lisp-controller 'assoc-array) | |
(digraph:insert-edge *d* 'lisp-controller 'list-utils) | |
(digraph:insert-edge *d* 'lisp-controller 'alert) | |
(digraph:insert-edge *d* 'lisp-controller 'dev-tools) | |
(digraph:insert-edge *d* 'lisp-bundle 'iu-classes) | |
(digraph:insert-edge *d* 'lisp-bundle 'builder-utilities) | |
(digraph:insert-edge *d* 'lisp-bundle 'ns-object-utils) | |
(digraph:insert-edge *d* 'lisp-bundle 'ns-string-utils) | |
(digraph:insert-edge *d* 'lisp-bundle 'alert) | |
(digraph:insert-edge *d* 'lisp-bundle 'interface-packages) | |
(digraph:insert-edge *d* 'kvo-slot 'undo) | |
(digraph:insert-edge *d* 'iu-classes 'interface-packages) | |
(digraph:insert-edge *d* 'interactive-app 'iu-classes) | |
(digraph:insert-edge *d* 'interactive-app 'ns-string-utils) | |
(digraph:insert-edge *d* 'install-executable 'objc-initialize) | |
(digraph:insert-edge *d* 'install-executable 'custom-app-init) | |
(digraph:insert-edge *d* 'install-executable 'save-gui-app) | |
(digraph:insert-edge *d* 'hist-dt 'iu-classes) | |
(digraph:insert-edge *d* 'file-monitor 'iu-classes) | |
(digraph:insert-edge *d* 'file-monitor 'open-panel) | |
(digraph:insert-edge *d* 'file-directory-utils 'iu-classes) | |
(digraph:insert-edge *d* 'doc-controller-hash 'objc-initialize) | |
(digraph:insert-edge *d* 'decimal 'iu-classes) | |
(digraph:insert-edge *d* 'decimal 'ns-string-utils) | |
(digraph:insert-edge *d* 'debug 'ns-string-utils) | |
(digraph:insert-edge *d* 'debug 'selector-utils) | |
(digraph:insert-edge *d* 'date 'iu-classes) | |
(digraph:insert-edge *d* 'combo-box-source 'iu-classes) | |
(digraph:insert-edge *d* 'combo-box-source 'ns-string-utils) | |
(digraph:insert-edge *d* 'coerce-obj 'interface-packages) | |
(digraph:insert-edge *d* 'coerce-obj 'ns-object-utils) | |
(digraph:insert-edge *d* 'coder 'iu-classes) | |
(digraph:insert-edge *d* 'coder 'ns-string-utils) | |
(digraph:insert-edge *d* 'binding-utils 'iu-classes) | |
(digraph:insert-edge *d* 'binding-utils 'lc-classes) | |
(digraph:insert-edge *d* 'binding-utils 'coerce-obj) | |
(digraph:insert-edge *d* 'binding-utils 'nslog-utils) | |
(digraph:insert-edge *d* 'binding-utils 'kvo-slot) | |
(digraph:insert-edge *d* 'binding-utils 'selector-utils) | |
(digraph:insert-edge *d* 'attributed-strings 'coerce-obj) | |
(digraph:insert-edge *d* 'attributed-strings 'iu-classes) | |
(digraph:insert-edge *d* 'attributed-strings 'objc-initialize) | |
(digraph:insert-edge *d* 'assoc-array 'iu-classes) | |
(digraph:insert-edge *d* 'appkit-version 'interface-packages) | |
(digraph:insert-edge *d* 'view-utils 'interface-packages) | |
(digraph:insert-edge *d* 'view-utils 'coerce-obj) | |
(digraph:insert-edge *d* 'view-utils 'nslog-utils) | |
(digraph:insert-edge *d* 'text-views 'interface-packages) | |
(digraph:insert-edge *d* 'text-views 'nslog-utils) | |
(digraph:insert-edge *d* 'text-views 'lv-classes) | |
(digraph:insert-edge *d* 'text-views 'coerce-obj) | |
(digraph:insert-edge *d* 'text-views 'constraint-layout) | |
(digraph:insert-edge *d* 'text-views 'dev-tools) | |
(digraph:insert-edge *d* 'table-utils 'interface-packages) | |
(digraph:insert-edge *d* 'table-utils 'objc-initialize) | |
(digraph:insert-edge *d* 'scroll-view 'interface-packages) | |
(digraph:insert-edge *d* 'scroll-view 'lv-classes) | |
(digraph:insert-edge *d* 'scroll-view 'text-views) | |
(digraph:insert-edge *d* 'scroll-view 'attributed-strings) | |
(digraph:insert-edge *d* 'scroll-view 'coerce-obj) | |
(digraph:insert-edge *d* 'radio-button 'interface-packages) | |
(digraph:insert-edge *d* 'radio-button 'organized-box-view) | |
(digraph:insert-edge *d* 'radio-button 'button) | |
(digraph:insert-edge *d* 'radio-button 'coerce-obj) | |
(digraph:insert-edge *d* 'organized-box-view 'interface-packages) | |
(digraph:insert-edge *d* 'organized-box-view 'constraint-layout) | |
(digraph:insert-edge *d* 'organized-box-view 'coerce-obj) | |
(digraph:insert-edge *d* 'lv-classes 'interface-packages) | |
(digraph:insert-edge *d* 'lisp-app-pr-view 'lv-classes) | |
(digraph:insert-edge *d* 'lisp-app-pr-view 'date) | |
(digraph:insert-edge *d* 'lisp-app-pr-view 'nslog-utils) | |
(digraph:insert-edge *d* 'constraint-layout 'interface-packages) | |
(digraph:insert-edge *d* 'constraint-layout 'coerce-obj) | |
(digraph:insert-edge *d* 'constraint-layout 'view-utils) | |
(digraph:insert-edge *d* 'constraint-layout 'nslog-utils) | |
(digraph:insert-edge *d* 'button 'interface-packages) | |
(digraph:insert-edge *d* 'button 'organized-box-view) | |
(digraph:insert-edge *d* 'button 'coerce-obj) | |
(digraph:insert-edge *d* 'button 'selector-utils) | |
(digraph:insert-edge *d* 'button 'list-utils) | |
;; Generate a Standard Sort Order | |
;; (digraph:topological-sort *d*) | |
;; Remove anything not in a cycle | |
;; (loop :for l = (digraph:leafs *d*) :until (null l) :do (dolist (leaf l) (digraph:remove-vertex *d* leaf))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment