Major effort to plug slot-name leaks.
[sod] / src / parser / scanner-proto.lisp
index d590d77..bd7e160 100644 (file)
 
 (export '(token-scanner token-type token-value))
 (defclass token-scanner ()
-  ((type :reader token-type)
+  ((%type :reader token-type)
    (value :reader token-value)
    (captures :initform 0 :type fixnum)
    (tail :initform nil :type (or token-scanner-place null))
 ;; A place marker.
 
 (export '(token-scanner-place token-scanner-place-p))
-(defstruct token-scanner-place
+(defstruct (token-scanner-place
+            (:constructor make-token-scanner-place
+                          (&key scanner next type value line column
+                           &aux (%type type))))
   "A link in the chain of lookahead tokens; capturable as a place.
 
    If the scanner's place is captured, it starts to maintain a list of
 
   (scanner nil :type token-scanner :read-only t)
   (next nil :type (or token-scanner-place null))
-  (type nil :read-only t)
+  (%type nil :read-only t)
   (value nil :read-only t)
   (line 1 :type (or fixnum null) :read-only t)
   (column 0 :type (or fixnum null) :read-only t))
+(define-access-wrapper token-scanner-place-type token-scanner-place-%type
+                      :read-only t)
 
 ;; Protocol.