Move MATCH-UTF8-CHAR-IN-ALPHABET into parser-buffer abstraction.
authorChris Hanson <org/chris-hanson/cph>
Thu, 4 Oct 2001 15:54:20 +0000 (15:54 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 4 Oct 2001 15:54:20 +0000 (15:54 +0000)
v7/src/star-parser/buffer.scm
v7/src/star-parser/parser.pkg

index 3f38d80f8c19c6d8bf152abb5932d4dad884d571..4ef4545888510587a93b878bee82330b8f844d1f 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: buffer.scm,v 1.9 2001/10/04 15:50:40 cph Exp $
+;;; $Id: buffer.scm,v 1.10 2001/10/04 15:53:52 cph Exp $
 ;;;
 ;;; Copyright (c) 2001 Massachusetts Institute of Technology
 ;;;
   (char-matcher not-char-ci (not (char-ci=? char reference)))
   (char-matcher char-in-set (char-set-member? reference char)))
 
+(define (match-utf8-char-in-alphabet buffer alphabet)
+  (if (let ((n
+            (read-utf8-code-point-from-source
+             (lambda ()
+               (read-parser-buffer-char buffer)))))
+       (and n
+            (code-point-in-alphabet? n alphabet)))
+      #t
+      (begin
+       (set-parser-buffer-pointer! buffer p)
+       #f)))
+\f
 (let-syntax
     ((string-matcher
       (lambda (suffix)
index 56efb996445ad2d40e8bd3580be195d6124a5aef..ea0b0e52382f372fdd6065c810ec53c12711ef48 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: parser.pkg,v 1.10 2001/10/04 15:53:16 cph Exp $
+;;; $Id: parser.pkg,v 1.11 2001/10/04 15:54:20 cph Exp $
 ;;;
 ;;; Copyright (c) 2001 Massachusetts Institute of Technology
 ;;;
@@ -49,6 +49,7 @@
          match-parser-buffer-substring-ci
          match-parser-buffer-substring-ci-no-advance
          match-parser-buffer-substring-no-advance
+         match-utf8-char-in-alphabet
          parser-buffer-line
          parser-buffer-pointer-index
          parser-buffer-pointer-line