From fc42fe56a57eace2dbdb31574c2e161f0eacf839 Mon Sep 17 00:00:00 2001 From: Ludovic Court`es Date: Wed, 15 Jun 2005 13:00:39 +0000 Subject: Initial import of Skribe 1.2d. Initial import of Skribe 1.2d. git-archimport-id: lcourtes@laas.fr--2004-libre/skribilo--devel--1.2--base-0 --- skribe/doc/user/src/prgm3.skb | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 skribe/doc/user/src/prgm3.skb (limited to 'skribe/doc/user/src/prgm3.skb') diff --git a/skribe/doc/user/src/prgm3.skb b/skribe/doc/user/src/prgm3.skb new file mode 100644 index 0000000..51cb564 --- /dev/null +++ b/skribe/doc/user/src/prgm3.skb @@ -0,0 +1,55 @@ +(define (makefile-fontifier string) + (with-input-from-string string + (lambda () + (read/rp (regular-grammar () + ((: #\# (+ all)) + ;; makefile comment + (let ((cmt (the-string))) + (cons (it cmt) (ignore)))) + ((bol (: (+ (out " \t\n:")) #\:)) + ;; target + (let ((prompt (the-string))) + (cons (bold prompt) (ignore)))) + ((bol (: (+ alpha) #\=)) + ;; variable definitions + (let* ((len (- (the-length) 1)) + (var (the-substring 0 len))) + (cons (list (color :fg "#bb0000" (bold var)) "=") + (ignore)))) + ((+ (out " \t\n:=$")) + ;; plain strings + (let ((str (the-string))) + (cons str (ignore)))) + ((: #\$ #\( (+ (out " )\n")) #\)) + ;; variable references + (let ((str (the-string)) + (var (the-substring 2 (- (the-length) 1)))) + (cons (underline str) (ignore)))) + ((+ (in " \t\n:")) + ;; separators + (let ((nl (the-string))) + (cons nl (ignore)))) + (else + ;; default + (let ((c (the-failure))) + (if (eof-object? c) + '() + (skribe-error 'makefile "Unexpected char" c))))) + (current-input-port))))) + +(define makefile + (language :name "Makefile" + :fontifier makefile-fontifier)) + +(frame :width 100. + (prog (source :language makefile [ +SKRIBE=skribe + +all: demo.html demo.man + +demo.html: demo.skb + $(SKRIBE) demo.skb -o demo.html + +demo.man: demo.skb + $(SKRIBE) demo.skb -o demo.man +]))) -- cgit v1.2.3