summary refs log tree commit diff
path: root/src/guile/silex/updatesi.scm
diff options
context:
space:
mode:
authorLudovic Courtès2008-01-18 12:36:59 +0100
committerLudovic Courtès2008-01-18 12:36:59 +0100
commit7efd05778cddec0293e0d48199f3aeee2aad6178 (patch)
tree806be6fc0190c511374f15332c4465e27048b111 /src/guile/silex/updatesi.scm
parenta3b7dfffbda5fe148920c7556244ab35b99109a5 (diff)
downloadskribilo-7efd05778cddec0293e0d48199f3aeee2aad6178.tar.gz
skribilo-7efd05778cddec0293e0d48199f3aeee2aad6178.tar.lz
skribilo-7efd05778cddec0293e0d48199f3aeee2aad6178.zip
Add SILex, for simplicity.
Diffstat (limited to 'src/guile/silex/updatesi.scm')
-rw-r--r--src/guile/silex/updatesi.scm92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/guile/silex/updatesi.scm b/src/guile/silex/updatesi.scm
new file mode 100644
index 0000000..0f7d2c5
--- /dev/null
+++ b/src/guile/silex/updatesi.scm
@@ -0,0 +1,92 @@
+; SILex - Scheme Implementation of Lex
+; Copyright (C) 2001  Danny Dube'
+; 
+; This program is free software; you can redistribute it and/or
+; modify it under the terms of the GNU General Public License
+; as published by the Free Software Foundation; either version 2
+; of the License, or (at your option) any later version.
+; 
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+; GNU General Public License for more details.
+; 
+; You should have received a copy of the GNU General Public License
+; along with this program; if not, write to the Free Software
+; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+;
+; Fonction pour reconstituer le fichier silex.scm a partir des
+; differents modules
+;
+
+(define update
+  (lambda ()
+    (let ((entete
+	   '("; SILex - Scheme Implementation of Lex"
+	     "; SILex 1.0"
+	     "; Copyright (C) 2001  Danny Dube'"
+	     "; "
+	     "; This program is free software; you can redistribute it and/or"
+	     "; modify it under the terms of the GNU General Public License"
+	     "; as published by the Free Software Foundation; either version 2"
+	     "; of the License, or (at your option) any later version."
+	     "; "
+	     "; This program is distributed in the hope that it will be useful,"
+	     "; but WITHOUT ANY WARRANTY; without even the implied warranty of"
+	     "; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the"
+	     "; GNU General Public License for more details."
+	     "; "
+	     "; You should have received a copy of the GNU General Public License"
+	     "; along with this program; if not, write to the Free Software"
+	     "; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA."
+	     ""))
+	  (out-port (open-output-file "silex.scm")))
+      (for-each (lambda (str)
+		  (display str out-port)
+		  (newline out-port))
+		entete)
+      (for-each
+       (lambda (in-file)
+	 (display "; Module " out-port)
+	 (display in-file out-port)
+	 (display "." out-port)
+	 (newline out-port)
+	 (let ((in-port (open-input-file in-file)))
+	   (let loop ((c (read-char in-port))
+		      (skip? #t)
+		      (bol? #t))
+	     (if (eof-object? c)
+		 (begin
+		   (newline out-port)
+		   (close-input-port in-port))
+		 (if skip?
+		     (if bol?
+			 (if (char=? c #\;)
+			     (loop (read-char in-port) #t #f)
+			     (begin
+			       (write-char c out-port)
+			       (loop (read-char in-port) #f 'dontcare)))
+			 (if (char=? c #\newline)
+			     (loop (read-char in-port) #t #t)
+			     (loop (read-char in-port) #t #f)))
+		     (begin
+		       (write-char c out-port)
+		       (loop (read-char in-port) #f 'dontcare)))))))
+       '("util.scm"
+	 "action.l.scm"
+	 "class.l.scm"
+	 "macro.l.scm"
+	 "regexp.l.scm"
+	 "string.l.scm"
+	 "multilex.scm"
+	 "lexparser.scm"
+	 "re2nfa.scm"
+	 "noeps.scm"
+	 "sweep.scm"
+	 "nfa2dfa.scm"
+	 "prep.scm"
+	 "output.scm"
+	 "output2.scm"
+	 "main.scm"))
+      (close-output-port out-port))))