diff options
author | Ludovic Courtès | 2008-01-18 12:36:59 +0100 |
---|---|---|
committer | Ludovic Courtès | 2008-01-18 12:36:59 +0100 |
commit | 7efd05778cddec0293e0d48199f3aeee2aad6178 (patch) | |
tree | 806be6fc0190c511374f15332c4465e27048b111 /src/guile/silex/updatesi.scm | |
parent | a3b7dfffbda5fe148920c7556244ab35b99109a5 (diff) | |
download | skribilo-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.scm | 92 |
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)))) |