Move inlined definitions before they are used.
Otherwise they do not get a chance to get inlined.
This commit is contained in:
22
lexer.lisp
22
lexer.lisp
@ -56,6 +56,7 @@ their associated character classes."
|
||||
((#\S)
|
||||
:non-whitespace-char-class)))
|
||||
|
||||
(declaim (inline make-lexer-internal))
|
||||
(defstruct (lexer (:constructor make-lexer-internal))
|
||||
"LEXER structures are used to hold the regex string which is
|
||||
currently lexed and to keep track of the lexer's state."
|
||||
@ -66,8 +67,7 @@ currently lexed and to keep track of the lexer's state."
|
||||
(last-pos nil :type list))
|
||||
|
||||
(defun make-lexer (string)
|
||||
(declare (inline make-lexer-internal)
|
||||
#-:genera (string string))
|
||||
(declare #-:genera (string string))
|
||||
(make-lexer-internal :str (maybe-coerce-to-simple-string string)
|
||||
:len (length string)))
|
||||
|
||||
@ -497,6 +497,15 @@ closing #\> will also be consumed."
|
||||
(setf (lexer-pos lexer) (1+ end-name))
|
||||
name)))
|
||||
|
||||
(declaim (inline unget-token))
|
||||
(defun unget-token (lexer)
|
||||
(declare #.*standard-optimize-settings*)
|
||||
"Moves the lexer back to the last position stored in the LAST-POS stack."
|
||||
(if (lexer-last-pos lexer)
|
||||
(setf (lexer-pos lexer)
|
||||
(pop (lexer-last-pos lexer)))
|
||||
(error "No token to unget \(this should not happen)")))
|
||||
|
||||
(defun get-token (lexer)
|
||||
(declare #.*standard-optimize-settings*)
|
||||
"Returns and consumes the next token from the regex string \(or NIL)."
|
||||
@ -712,15 +721,6 @@ closing #\> will also be consumed."
|
||||
(pop (lexer-last-pos lexer))
|
||||
nil))))
|
||||
|
||||
(declaim (inline unget-token))
|
||||
(defun unget-token (lexer)
|
||||
(declare #.*standard-optimize-settings*)
|
||||
"Moves the lexer back to the last position stored in the LAST-POS stack."
|
||||
(if (lexer-last-pos lexer)
|
||||
(setf (lexer-pos lexer)
|
||||
(pop (lexer-last-pos lexer)))
|
||||
(error "No token to unget \(this should not happen)")))
|
||||
|
||||
(declaim (inline start-of-subexpr-p))
|
||||
(defun start-of-subexpr-p (lexer)
|
||||
(declare #.*standard-optimize-settings*)
|
||||
|
||||
Reference in New Issue
Block a user