Add (syntax-highlight utils) module.
authorDavid Thompson <dthompson2@worcester.edu>
Thu, 22 Oct 2015 01:43:18 +0000 (21:43 -0400)
committerDavid Thompson <dthompson2@worcester.edu>
Thu, 22 Oct 2015 01:43:18 +0000 (21:43 -0400)
* syntax-highlight.scm (string->stream): Move it.
* syntax-highlight/parsers.scm (stream->string): Likewise.
* syntax-highlight/utils.scm: New file.
* Makefile.am (SOURCES): Add it.

Makefile.am
syntax-highlight.scm
syntax-highlight/parsers.scm
syntax-highlight/utils.scm [new file with mode: 0644]

index 84ddeda..c838685 100644 (file)
@@ -39,6 +39,7 @@ moddir=$(prefix)/share/guile/site/2.0
 godir=$(libdir)/guile/2.0/ccache
 
 SOURCES =                                      \
+  syntax-highlight/utils.scm                   \
   syntax-highlight/parsers.scm                 \
   syntax-highlight/scheme.scm                  \
   syntax-highlight/xml.scm                     \
index 8aba7db..6a15dab 100644 (file)
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-41)
+  #:use-module (syntax-highlight utils)
   #:export (highlight
             highlights->sxml))
 
-(define (string->stream str)
-  "Convert the string STR into a stream of characters."
-  (stream-map (lambda (i)
-                (string-ref str i))
-              (stream-range 0 (string-length str))))
-
 (define* (highlight highlighter #:optional (stream (current-input-port)))
   "Apply HIGHLIGHTER, a syntax highlighting procedure, to STREAM.
 STREAM may be an open port, string, or SRFI-41 character stream.  If
index 41975d6..c631a59 100644 (file)
@@ -28,6 +28,7 @@
   #:use-module (srfi srfi-11)
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-41)
+  #:use-module (syntax-highlight utils)
   #:export (parse-fail
             parse-bind
             parse-return
@@ -141,8 +142,6 @@ parser always succeeds."
             (values (reverse results)
                     remaining))))))
 
-(define stream->string (compose list->string stream->list))
-
 (define (parse-string str)
   "Create a parser that succeeds when the front of the stream contains
 the character sequence in STR."
diff --git a/syntax-highlight/utils.scm b/syntax-highlight/utils.scm
new file mode 100644 (file)
index 0000000..a400a8e
--- /dev/null
@@ -0,0 +1,37 @@
+;;; guile-syntax-highlight -- General-purpose syntax highlighter
+;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;;
+;;; Guile-syntax-highlight is free software; you can redistribute it
+;;; and/or modify it under the terms of the GNU Lesser General Public
+;;; License as published by the Free Software Foundation; either
+;;; version 3 of the License, or (at your option) any later version.
+;;;
+;;; Guile-syntax-highlight 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 Lesser General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU Lesser General Public
+;;; License along with guile-syntax-highlight.  If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; Utility procedures.
+;;
+;;; Code:
+
+(define-module (syntax-highlight utils)
+  #:use-module (srfi srfi-41)
+  #:export (string->stream
+            stream->string))
+
+(define (string->stream str)
+  "Convert the string STR into a stream of characters."
+  (stream-map (lambda (i)
+                (string-ref str i))
+              (stream-range 0 (string-length str))))
+
+(define (stream->string stream)
+  "Convert STREAM, a SRFI-41 stream of characters, into a string."
+  (list->string (stream->list stream)))