* Track the line number of the current buffer position, so that error
authorChris Hanson <org/chris-hanson/cph>
Fri, 29 Jun 2001 05:19:24 +0000 (05:19 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 29 Jun 2001 05:19:24 +0000 (05:19 +0000)
  messages can refer to the line.  Change representation of buffer
  pointers to include the line number.  Add operation to generate a
  string that shows the line number and character number of either a
  given pointer or the current position.

* Eliminate DECREMENT-PARSER-BUFFER-POINTER, which was unused and
  makes implementing the line number more difficult.

* Add -NO-ADVANCE versions of procedures that match single characters.

* Change terminology: the index of the current character in the buffer
  is called a "position".  The word "pointer" is reserved to refer to
  pointer objects that are handed to the users, which themselves refer
  to positions.

v7/src/star-parser/buffer.scm

index 0ecf0f9033f32f225d4f2669e5b364dfda4818f0..1a9ee589999b23786067b204ae85916685eb5511 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: buffer.scm,v 1.3 2001/06/29 05:18:19 cph Exp $
+;;; $Id: buffer.scm,v 1.4 2001/06/29 05:19:24 cph Exp $
 ;;;
 ;;; Copyright (c) 2001 Massachusetts Institute of Technology
 ;;;
       (error:wrong-type-argument p "parser-buffer pointer" 'POINTER->INDEX)))
 
 (define (parser-buffer-position-string object)
-  (let ((position
-        (if (parser-buffer-position? object)
+  (let ((pointer
+        (if (parser-buffer-pointer? object)
             object
             (get-parser-buffer-pointer object))))
     (string-append
      "line "
-     (number->string (+ (parser-buffer-pointer-line object) 1))
+     (number->string (+ (parser-buffer-pointer-line pointer) 1))
      ", char "
-     (number->string (+ (parser-buffer-pointer-index object) 1)))))
+     (number->string (+ (parser-buffer-pointer-index pointer) 1)))))
 \f
 (let-syntax
     ((char-matcher