summaryrefslogtreecommitdiff
path: root/input.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'input.lisp')
-rw-r--r--input.lisp43
1 files changed, 0 insertions, 43 deletions
diff --git a/input.lisp b/input.lisp
deleted file mode 100644
index e464d0e..0000000
--- a/input.lisp
+++ /dev/null
@@ -1,43 +0,0 @@
-(in-package #:monparser)
-
-(defclass parser-input ()
- ((cursor :initarg :cursor :accessor input-cursor :initform 0)
- (data :initarg :data :reader input-data :initform nil)))
-
-(defun has-data? (input)
- (< (input-cursor input) (length (input-data input))))
-
-(defun peek (input)
- (char (input-data input)
- (input-cursor input)))
-
-(defun advance (input)
- (make-instance 'parser-input
- :data (input-data input)
- :cursor (+ (input-cursor input) 1)))
-
-(defun line-and-column (input)
- (let ((line 1) (column 1))
- (dotimes (i (input-cursor input))
- (let ((c (char (input-data input) i)))
- (case c
- (#\Newline
- (incf line)
- (setf column 1))
- (t (incf column)))))
- (values line column)))
-
-(defmethod print-object ((obj parser-input) stream)
- (let ((context-length 20))
- (let ((begin (max (- (input-cursor obj) context-length) 0))
- (end (min (+ (input-cursor obj) context-length) (length (input-data obj)))))
- (when (< 0 begin)
- (format stream "..."))
- (format stream "~a"
- (substitute #\↲ #\Newline (subseq (input-data obj) begin (input-cursor obj))))
- (when (< (input-cursor obj) (length (input-data obj)))
- (format stream "~a~a"
- (substitute #\↲ #\Newline (subseq (input-data obj) (input-cursor obj) (1+ (input-cursor obj))))
- (substitute #\↲ #\Newline (subseq (input-data obj) (1+ (input-cursor obj)) end))))
- (when (< end (length (input-data obj)))
- (format stream "...")))))