;;;--------------------------------------------------------------------------
;;; Token scanner protocol.
-;; A place marker.
-
-(export '(token-scanner-place token-scanner-place-p))
-(defstruct token-scanner-place
- "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
- lookahead tokens. The list contains internal links -- it works out
- slightly easier that way. This is basically a simpler version of the
- charbuf scanner (q.v.); most significantly, the chain links here do double
- duty as place markers.
-
- The details of this structure are not a defined part of the token scanner
- protocol."
-
- (scanner nil :type token-scanner :read-only t)
- (next nil :type (or token-scanner-place null))
- (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))
-
;; The token scanner base class and parser context.
(export '(token-scanner token-type token-value))
(:documentation
"A parser context for a richer token-based scanners."))
+;; A place marker.
+
+(export '(token-scanner-place token-scanner-place-p))
+(defstruct token-scanner-place
+ "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
+ lookahead tokens. The list contains internal links -- it works out
+ slightly easier that way. This is basically a simpler version of the
+ charbuf scanner (q.v.); most significantly, the chain links here do double
+ duty as place markers.
+
+ The details of this structure are not a defined part of the token scanner
+ protocol."
+
+ (scanner nil :type token-scanner :read-only t)
+ (next nil :type (or token-scanner-place null))
+ (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))
+
;; Protocol.
(export 'scanner-token)