Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Eric Timmons
iterate
Commits
68810b06
Commit
68810b06
authored
Apr 04, 2007
by
Joerg-Cyril Hoehle
Browse files
walk-tagbody must not macroexpand symbol/tags among its statements
darcs-hash:3f3b1d56b02e8b0498409a439d434ba2741a73d7
parent
026b625e
Changes
1
Hide whitespace changes
Inline
Side-by-side
iterate.lisp
View file @
68810b06
...
...
@@ -307,7 +307,7 @@
(
return-from
.
walk-cddr
)
(
setq
.
walk-setq
)
(
symbol-macrolet
.
walk-cddr-with-declarations
)
(
tagbody
.
walk-
cdr
)
(
tagbody
.
walk-
tagbody
)
(
the
.
walk-cddr
)
(
throw
.
walk-cdr
)
(
unwind-protect
.
walk-cdr
)
...
...
@@ -982,6 +982,21 @@ Evaluate (iterate:display-iterate-clauses) for an overview of clauses"
(
return-code-modifying-body
#'
walk-arglist
forms
#
L
(
list
(
cons
first
(
cons
second
(
nconc
decls
!1
)))))))
(
defun
walk-tagbody
(
tagbody
&rest
statements
)
(
flet
((
walk-statements
(
statements
)
(
walk-list-nconcing
statements
#
L
(
if
(
atom
!1
)
(
list
!1
)
(
walk
!1
))
#'
(
lambda
(
form
body
)
(
cond
((
atom
form
)
body
)
;; wrap statements which expand into an atom
((
typep
body
'
(
cons
atom
null
))
(
list
(
cons
'progn
body
)))
(
t
body
))))))
(
let
((
*top-level?*
nil
))
(
return-code-modifying-body
#'
walk-statements
statements
#
L
(
list
(
cons
tagbody
!1
))))))
(
defun
walk-macrolet
(
form-name
&rest
stuff
)
(
declare
(
ignore
stuff
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment