]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/lily.scm
* scm/chord-name.scm: Super/raise changes and fixes for Banter.
[lilypond.git] / scm / lily.scm
index 4bc71012e95290486696e111ea0f98237970b871..fde3b90e192385acdba6f9e1a616ed0e7694805a 100644 (file)
@@ -2,19 +2,21 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 1998--2002 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
 ;;; Library functions
 
+
 (use-modules (ice-9 regex))
 
+
 ;;; General settings
 ;; debugging evaluator is slower.
 
-;(debug-enable 'debug)
+(debug-enable 'debug)
 ;(debug-enable 'backtrace)
-;(read-enable 'positions)
+(read-enable 'positions)
 
 
 (define-public (line-column-location line col file)
   (string-append (number->string line) " " file)
   )
 
+(define-public point-and-click #f)
+
 ;; cpp hack to get useful error message
 (define ifdef "First run this through cpp.")
 (define ifndef "First run this through cpp.")
 
 
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(define X 0)
-(define Y 1)
-(define LEFT -1)
-(define RIGHT 1)
-(define UP 1)
-(define DOWN -1)
-(define CENTER 0)
+(define-public X 0)
+(define-public Y 1)
+(define-public START -1)
+(define-public STOP 1)
+(define-public LEFT -1)
+(define-public RIGHT 1)
+(define-public UP 1)
+(define-public DOWN -1)
+(define-public CENTER 0)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; lily specific variables.
 (define-public default-script-alist '())
 
 (define-public security-paranoia #f)
-(if (not (defined? 'standalone))
-    (define-public standalone (not (defined? 'ly-gulp-file))))
-
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Unassorted utility functions.
@@ -106,6 +110,24 @@ is the  first to satisfy CRIT
       )
   ))
 
+
+(define-public (reduce-list list between)
+  "Create new list, inserting BETWEEN between elements of LIST"
+  (if (null? list)
+      '()
+      (if (null? (cdr list))
+         list
+         (cons (car list)
+               (cons between (reduce-list (cdr list) between)))
+  
+  )))
+
+(define-public (string-join str-list sep)
+  "append the list of strings in STR-LIST, joining them with SEP"
+  (apply string-append (reduce-list str-list sep))
+  )
+
+
 (define (sign x)
   (if (= x 0)
       0
@@ -158,9 +180,12 @@ is the  first to satisfy CRIT
   (string-append str (make-string (max (- wid (string-length str)) 0) #\ ))
   )
 
-(define (ly-load x)
-  (let* ((fn (%search-load-path x)))
-    (if (ly-verbose)
+(define-public (ly:load x)
+  (let* (
+        (fn (%search-load-path x))
+
+        )
+    (if (ly:verbose)
        (format (current-error-port) "[~A]" fn))
     (primitive-load fn)))
 
@@ -172,6 +197,7 @@ is the  first to satisfy CRIT
             (scm pysk)
             (scm ascii-script)
             (scm sketch)
+            (scm sodipodi)
             (scm pdftex)
             )
 
@@ -181,7 +207,8 @@ is the  first to satisfy CRIT
     ("ps" . ("Direct postscript. Requires setting GS_LIB and GS_FONTPATH" ,ps-output-expression))
     ("scm" . ("Scheme dump: debug scheme molecule expressions" ,write))
     ("as" . ("Asci-script. Postprocess with as2txt to get ascii art"  ,as-output-expression))
-    ("sketch" . ("Bare bones Sketch output. Requires sketch 0.7" ,sketch-output-expression))
+    ("sketch" . ("Bare bones Sketch output." ,sketch-output-expression))
+    ("sodipodi" . ("Bare bones Sodipodi output." ,sodipodi-output-expression))
     ("pdftex" . ("PDFTeX output. Was last seen nonfunctioning." ,pdftex-output-expression))
     ))
 
@@ -205,30 +232,66 @@ is the  first to satisfy CRIT
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; other files.
 
-(if (not standalone)
-    (map ly-load
+(map ly:load
                                        ; load-from-path
-        '("music-types.scm"
-          "output-lib.scm"
-          "c++.scm"
-          "molecule.scm"
-          "bass-figure.scm"
-          "grob-property-description.scm"
-          "context-description.scm"
-          "interface-description.scm"
-          "beam.scm"
-          "clef.scm"
-          "slur.scm"
-          "font.scm"
-          "music-functions.scm"
-          "music-property-description.scm"
-          "auto-beam.scm"
-          "basic-properties.scm"
-          "chord-name.scm"
-          "grob-description.scm"
-          "translator-property-description.scm"
-          "script.scm"
-          "drums.scm"
-          "midi.scm"
-          )))
-
+     '("music-types.scm"
+       "output-lib.scm"
+       "c++.scm"
+       
+       "molecule.scm"
+       "bass-figure.scm"
+       "grob-property-description.scm"
+       "context-description.scm"
+       "interface-description.scm"
+       "beam.scm"
+       "clef.scm"
+       "slur.scm"
+       "font.scm"
+       "music-functions.scm"
+       "music-property-description.scm"
+       "auto-beam.scm"
+       "new-markup.scm"
+       "basic-properties.scm"
+       "chord-name.scm"
+       "grob-description.scm"
+       "translator-property-description.scm"
+       "script.scm"
+       "drums.scm"
+       "midi.scm"
+       ))
+
+
+       
+
+
+(set! type-p-name-alist
+  `(
+   (,ly:dir? . "direction")
+   (,scheme? . "any type")
+   (,number-pair? . "pair of numbers")
+   (,ly:input-location? . "input location")   
+   (,ly:grob? . "grob (GRaphical OBject)")
+   (,grob-list? . "list of grobs")
+   (,ly:duration? . "duration")
+   (,pair? . "pair")
+   (,integer? . "integer")
+   (,list? . "list")
+   (,symbol? . "symbol")
+   (,string? . "string")
+   (,boolean? . "boolean")
+   (,ly:moment? . "moment")
+   (,ly:input-location? . "input location")
+   (,music-list? . "list of music")
+   (,ly:music? . "music")
+   (,number? . "number")
+   (,char? . "char")
+   (,input-port? . "input port")
+   (,output-port? . "output port")   
+   (,vector? . "vector")
+   (,procedure? . "procedure") 
+   (,boolean-or-symbol? . "boolean or symbol")
+   (,number-or-string? . "number or string")
+   (,markup? . "markup")
+   (,markup-list? . "list of markups")
+   (,number-or-grob? . "number or grob")
+   ))