Hi all,
I'm compiling (trying to do so) a program written by someone else. I
want to have a working `.system' file (see the defsystem package), so
I'm trying to discover any order in the sources or to put some as far
as possible.
apart from an amount of `Warning: While compiling these undefined
functions were referenced', which I am willing to ignore at first
(there are circular dependencies among the files, of course!), I get
this error, which I don't understand. (I mean, I think I do understand
what lisp is telling me, but I have no idea on where to start looking to
solve the problem)
;;; compiling file
;;; /users/mario/Local/software/lisp/ideal-edit/code/instantiation-node.lisp
; While compiling (:TOP-LEVEL-FORM "instantiation-node.lisp" 27767):
Error: Function position must contain a symbol or lambda expression:
(PARENT 'IDEAL:NODE)
Problem detected when processing
((PARENT 'IDEAL:NODE))
inside (DEFINE-NODE-EDITOR-COMMAND (COM-DISPLAY-COND-CASE-WITH-NEXT-STATE)
((PARENT 'IDEAL:NODE)) ...) ..
inside (PROGN NIL ..)
[condition type: PARSE-ERROR]
the piece of source causing this error is:
>>
(define-node-editor-command (com-display-cond-case-with-next-state)
((parent 'ideal:node))
(with-slots (cond-case) *application-frame*
(let ((next-parent-state
(next-state parent (cdr (assoc parent cond-case)))))
(setf (cdr (assoc parent cond-case)) next-parent-state))))
<<
thanks in advance for any hints.
Mario
"Mario Frasca" <·····@cs.uu.nl> wrote in message
·························@tamino.cs.uu.nl...
> apart from an amount of `Warning: While compiling these undefined
> functions were referenced', which I am willing to ignore at first
> (there are circular dependencies among the files, of course!), I get
> this error, which I don't understand. (I mean, I think I do understand
> what lisp is telling me, but I have no idea on where to start looking to
> solve the problem)
>
> ;;; compiling file
> ;;;
/users/mario/Local/software/lisp/ideal-edit/code/instantiation-node.lisp
> ; While compiling (:TOP-LEVEL-FORM "instantiation-node.lisp" 27767):
> Error: Function position must contain a symbol or lambda expression:
> (PARENT 'IDEAL:NODE)
> Problem detected when processing
> ((PARENT 'IDEAL:NODE))
> inside (DEFINE-NODE-EDITOR-COMMAND (COM-DISPLAY-COND-CASE-WITH-NEXT-STATE)
> ((PARENT 'IDEAL:NODE)) ...) ..
> inside (PROGN NIL ..)
> [condition type: PARSE-ERROR]
Assuming everything worked as is before....
It looks like at the time of compilation, the macro
define-node-editor-command is unknown. The compiler assumes it is a
function call and then expects the first element of each unquoted list to be
a function object. com-display-cond-case-with-next-state *could* be but
(parent 'ideal:node) is not.
I would start there anyway, find that macro definition and make sure it is
loaded before it is used. (likewise for every macro, of course.)
Coby