Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gendl
gendl
Commits
af4db9c0
Commit
af4db9c0
authored
May 23, 2013
by
unknown
Browse files
If specialised treatment can't produce any messages, fall back on the's arglist.
parent
93ea639b
Changes
1
Hide whitespace changes
Inline
Side-by-side
emacs/gendl.lisp
View file @
af4db9c0
...
...
@@ -390,7 +390,7 @@ doesn't matter. For others it does. So we'll make an object and cache it."
;; 9. HELP ON MESSAGES FOR GENDL:THE AND FRIENDS
;; We're only looking at the top of the reference-chain. See
;; http://paste.lisp.org/display/137274
;; http://paste.lisp.org/display/137274
;; Note that (the (slot-source :bar)) gives you info about the
;; specified :type of bar. "You also have to establish the fact that
;; bar is indeed a GDL object and not some leaf-level value as with a
...
...
@@ -423,19 +423,20 @@ each returning a list of proposed messages.")
(
remove-duplicates
(
loop
for
locator
in
*message-locators*
append
(
funcall
locator
whole-form
))
:from-end
t
))))
(
values
(
make-arglist
:key-p
t
:keyword-args
(
loop
for
message
in
messages
collect
(
make-keyword-arg
message
message
nil
))
:provided-args
nil
:allow-other-keys-p
t
:rest
'reference-chain
)
nil
t
)))
(
when
messages
(
values
(
make-arglist
:key-p
t
:keyword-args
(
loop
for
message
in
messages
collect
(
make-keyword-arg
message
message
nil
))
:provided-args
nil
:allow-other-keys-p
t
:rest
'reference-chain
)
nil
t
))))
;; 9.1. Analyse the current gendl:the form
(
defstruct
(
this-the
(
:constructor
make-this-the
(
section
slot-form
the-form
&aux
&aux
(
functionp
(
and
(
consp
the-form
)
;; Selects "(the (..."
(
consp
(
second
the-form
))))
...
...
@@ -455,7 +456,7 @@ each returning a list of proposed messages.")
(
case
operator
((
gendl:the-child
)
;; It's a the-child inside an :object or :hidden-object.
;; Look graciously for a :sequence key.
;; Look graciously for a :sequence key.
(
loop
for
key
in
(
cdr
slot-form
)
by
'cddr
thereis
(
eq
key
:sequence
)))))))
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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