* Track the line number of the current buffer position, so that error
authorChris Hanson <org/chris-hanson/cph>
Fri, 29 Jun 2001 05:18:19 +0000 (05:18 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 29 Jun 2001 05:18:19 +0000 (05:18 +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
v7/src/star-parser/parser.pkg

index f78f78a38051d532d3f675b60feb722a8065ff00..0ecf0f9033f32f225d4f2669e5b364dfda4818f0 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: buffer.scm,v 1.2 2001/06/29 05:17:21 cph Exp $
+;;; $Id: buffer.scm,v 1.3 2001/06/29 05:18:19 cph Exp $
 ;;;
 ;;; Copyright (c) 2001 Massachusetts Institute of Technology
 ;;;
     ((char-matcher
       (lambda (name test)
        `(BEGIN
-          (DEFINE (,(symbol-append 'MATCH-PARSER-BUFFER- name -NO-ADVANCE)
+          (DEFINE (,(symbol-append 'MATCH-PARSER-BUFFER- name '-NO-ADVANCE)
                    BUFFER REFERENCE)
             (LET ((CHAR (PEEK-PARSER-BUFFER-CHAR BUFFER)))
               (AND CHAR
index 06f5ef6e072a4a14fac28e18802b930c7ce6ebd1..8e17fd59cceb53010b41c55f2d7d7c21364abb44 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;; $Id: parser.pkg,v 1.2 2001/06/26 18:51:33 cph Exp $
+;;; $Id: parser.pkg,v 1.3 2001/06/29 05:17:24 cph Exp $
 ;;;
 ;;; Copyright (c) 2001 Massachusetts Institute of Technology
 ;;;
 
 (global-definitions "$brun/runtime")
 
-(define-package (runtime *parser)
-  (files "buffer" "synchk" "shared" "matcher" "parser")
+(define-package (runtime *parser buffer)
+  (files "buffer")
   (parent ())
   (export ()
-         decrement-parser-buffer-pointer
          discard-parser-buffer-head!
          get-parser-buffer-pointer
          get-parser-buffer-tail
          input-port->parser-buffer
          match-parser-buffer-char
          match-parser-buffer-char-ci
+         match-parser-buffer-char-ci-no-advance
          match-parser-buffer-char-in-set
+         match-parser-buffer-char-in-set-no-advance
+         match-parser-buffer-char-no-advance
          match-parser-buffer-not-char
          match-parser-buffer-not-char-ci
+         match-parser-buffer-not-char-ci-no-advance
+         match-parser-buffer-not-char-no-advance
          match-parser-buffer-string
          match-parser-buffer-string-ci
          match-parser-buffer-string-ci-no-advance
          match-parser-buffer-substring-ci
          match-parser-buffer-substring-ci-no-advance
          match-parser-buffer-substring-no-advance
+         parser-buffer-line
+         parser-buffer-pointer-index
+         parser-buffer-pointer-line
+         parser-buffer-pointer?
+         parser-buffer-position-string
          parser-buffer?
          peek-parser-buffer-char
          read-parser-buffer-char
          set-parser-buffer-pointer!
          source->parser-buffer
          string->parser-buffer
-         substring->parser-buffer))
\ No newline at end of file
+         substring->parser-buffer))
+
+(define-package (runtime *parser)
+  (files "synchk" "shared" "matcher" "parser")
+  (parent ())
+  (export ()))
\ No newline at end of file