Move inlined definitions before they are used.

Otherwise they do not get a chance to get inlined.
This commit is contained in:
Stas Boukarev
2014-12-30 12:14:32 +03:00
parent cc10653087
commit afe67e9277

View File

@ -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*)