eql to char=
authorDavid Vázquez <davazp@gmail.com>
Tue, 18 Dec 2012 22:35:36 +0000 (23:35 +0100)
committerDavid Vázquez <davazp@gmail.com>
Tue, 18 Dec 2012 22:35:36 +0000 (23:35 +0100)
lispstrack.lisp
test.lisp

index b20ca47..ee1aab7 100644 (file)
   (let (ch)
     (skip-whitespaces stream)
     (setq ch (%peek-char stream))
-    (while (and ch (eql ch #\;))
-      (read-until stream (lambda (x) (eql x #\newline)))
+    (while (and ch (char= ch #\;))
+      (read-until stream (lambda (x) (char= x #\newline)))
       (skip-whitespaces stream)
       (setq ch (%peek-char stream)))))
 
index 560a255..7a68a35 100644 (file)
--- a/test.lisp
+++ b/test.lisp
   (or (null ch) (whitespacep ch) (char= #\) ch) (char= #\( ch)))
 
 
+(defun read-until (stream func)
+  (let ((string "")
+        (ch))
+    (setq ch (%peek-char stream))
+    (while (not (funcall func ch))
+      (setq string (concat string (string ch)))
+      (%read-char stream)
+      (setq ch (%peek-char stream)))
+    string))
+
+(defun skip-whitespaces-and-comments (stream)
+  (let (ch)
+    (skip-whitespaces stream)
+    (setq ch (%peek-char stream))
+    (while (and ch (char= ch #\;))
+      (read-until stream (lambda (x) (char= x #\newline)))
+      (skip-whitespaces stream)
+      (setq ch (%peek-char stream)))))