diff options
author | Stas Boukarev <stassats@gmail.com> | 2014-12-30 12:14:32 +0300 |
---|---|---|
committer | Stas Boukarev <stassats@gmail.com> | 2014-12-30 12:14:32 +0300 |
commit | afe67e92772bd0220d63efa2670930eb3ea400dd (patch) | |
tree | c7d749d7165d3d24c2447c0b66bce64bb64ecebe | |
parent | cc106530874e03752f0dbb858fedbc636a1daa06 (diff) |
Move inlined definitions before they are used.
Otherwise they do not get a chance to get inlined.
-rw-r--r-- | lexer.lisp | 24 |
1 files changed, 12 insertions, 12 deletions
@@ -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))) @@ -347,7 +347,7 @@ we're inside a range or not." (when (looking-at-p lexer #\-) (push #\- list) (incf (lexer-pos lexer))) - (setq hyphen-seen nil)))) + (setq hyphen-seen nil)))) ((#\E) ;; if \Q quoting is on we ignore \E, ;; otherwise it's just a plain #\E @@ -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*) |