]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/markup-init.ly
resolve merge
[lilypond.git] / ly / markup-init.ly
diff --git a/ly/markup-init.ly b/ly/markup-init.ly
deleted file mode 100644 (file)
index 5749c7b..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-%% -*- Mode: Scheme -*-
-
-\version "2.12.0"
-
-%%;; to be define later, in a closure
-#(define-public toplevel-module-define-public! #f)
-#(define-public toplevel-module-ref #f)
-#(let ((toplevel-module (current-module)))
-   (set! toplevel-module-define-public!
-         (lambda (symbol value)
-           (module-define! toplevel-module symbol value)
-           (module-export! toplevel-module (list symbol))))
-   (set! toplevel-module-ref
-         (lambda (symbol)
-           (module-ref toplevel-module symbol))))
-
-#(defmacro-public define-public-toplevel
-   (first-arg . rest)
-  "Define a public variable or function in the toplevel module:
-  (define-public-toplevel variable-name value)
-or:
-  (define-public-toplevel (function-name . args)
-    ..body..)"
-  (if (symbol? first-arg)
-      ;; (define-public-toplevel symbol value)
-      (let ((symbol first-arg)
-            (value (car rest)))
-        `(toplevel-module-define-public! ',symbol ,value))
-      ;; (define-public-toplevel (function-name . args) . body)
-      (let ((function-name (car first-arg))
-            (arg-list (cdr first-arg))
-            (body rest))
-        `(toplevel-module-define-public!
-          ',function-name
-          (let ((proc (lambda ,arg-list
-                        ,@body)))
-            (set-procedure-property! proc
-                                     'name
-                                     ',function-name)
-            proc)))))
-
-#(defmacro-public define-markup-command (command-and-args signature . body)
-  "
-* Define a COMMAND-markup function after command-and-args and body,
-register COMMAND-markup and its signature,
-
-* add COMMAND-markup to markup-function-list,
-
-* sets COMMAND-markup markup-signature and markup-keyword object properties,
-
-* define a make-COMMAND-markup function.
-
-Syntax:
-  (define-markup-command (COMMAND layout props arg1 arg2 ...)
-                         (arg1-type? arg2-type? ...)
-    \"documentation string\"
-    ...command body...)
-or:
-  (define-markup-command COMMAND (arg1-type? arg2-type? ...) function)
-"
-  (let* ((command (if (pair? command-and-args)
-                      (car command-and-args)
-                      command-and-args))
-         (command-name (string->symbol (format #f "~a-markup" command)))
-         (make-markup-name (string->symbol (format #f "make-~a-markup" command))))
-    `(begin
-       ;; define the COMMAND-markup procedure in toplevel module
-       ,(if (pair? command-and-args)
-            ;; 1/ (define (COMMAND-markup layout props arg1 arg2 ...)
-            ;;      ..command body))
-            `(define-public-toplevel (,command-name ,@(cdr command-and-args))
-               ,@body)
-            ;; 2/ (define (COMMAND-markup . args) (apply function args))
-            (let ((args (gensym "args"))
-                  (command (car body)))
-            `(define-public-toplevel (,command-name . ,args)
-               (apply ,command ,args))))
-       (let ((command-proc (toplevel-module-ref ',command-name)))
-         ;; register its command signature
-         (set! (markup-command-signature command-proc)
-               (list ,@signature))
-         ;; define the make-COMMAND-markup procedure in the toplevel module
-         (define-public-toplevel (,make-markup-name . args)
-           (make-markup command-proc
-                        ,(symbol->string make-markup-name)
-                        (list ,@signature)
-                        args))))))
-
-#(defmacro-public define-markup-list-command (command-and-args signature . body)
-  "Same as `define-markup-command', but defines a command that, when interpreted,
-returns a list of stencils, instead of a single one."
-  (let* ((command (if (pair? command-and-args)
-                     (car command-and-args)
-                     command-and-args))
-        (command-name (string->symbol (format #f "~a-markup-list" command)))
-        (make-markup-name (string->symbol (format #f "make-~a-markup-list" command))))
-    `(begin
-       ;; define the COMMAND-markup-list procedure in toplevel module
-       ,(if (pair? command-and-args)
-           ;; 1/ (define (COMMAND-markup-list layout props arg1 arg2 ...)
-           ;;      ..command body))
-           `(define-public-toplevel (,command-name ,@(cdr command-and-args))
-              ,@body)
-           ;; 2/ (define (COMMAND-markup-list . args) (apply function args))
-           (let ((args (gensym "args"))
-                 (command (car body)))
-           `(define-public-toplevel (,command-name . ,args)
-              (apply ,command ,args))))
-       (let ((command-proc (toplevel-module-ref ',command-name)))
-        ;; register its command signature
-        (set! (markup-command-signature command-proc)
-              (list ,@signature))
-        ;; it's a markup-list command:
-        (set-object-property! command-proc 'markup-list-command #t)
-        ;; define the make-COMMAND-markup-list procedure in the toplevel module
-        (define-public-toplevel (,make-markup-name . args)
-          (list (make-markup command-proc
-                             ,(symbol->string make-markup-name)
-                             (list ,@signature)
-                             args)))))))