unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Fwd: Re: Wrong type argument in procedure variable-set-name-hint!
@ 2005-01-22 19:36 Bruce Korb
  2005-02-28  1:48 ` Marius Vollmer
  0 siblings, 1 reply; 2+ messages in thread
From: Bruce Korb @ 2005-01-22 19:36 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 1245 bytes --]



----------  Forwarded Message  ----------

Subject: Re: Wrong type argument in procedure variable-set-name-hint!
Date: Saturday 22 January 2005 11:35 am
From: Bruce Korb <bkorb@veritas.com>
To: guile@gnu.org
Cc: autogen-users@lists.sourceforge.net, Matt Kraai <kraai@ftbfs.org>

Hello Guile Folks,

Below is an error message that Matt Kraai gets while trying to
start my autogen program.  Would anyone have a guess about
what the cause might be?  Attached is the script being run
when this failure occurs.

Thanks for your help!  Regards, Bruce

On Saturday 22 January 2005 11:06 am, Matt Kraai wrote:
> > > + /tmp/autogen-5.6.5/agen5/autogen -L/tmp/autogen-5.6.5/autoopts
> > > default-test.def
> > > ERROR: In procedure variable-set-name-hint!:
> > > ERROR: Wrong type argument in position ~A (expecting ~A): ~S

SCM_DEFINE (scm_variable_set_name_hint, "variable-set-name-hint!", 2, 0, 0,
	    (SCM var, SCM hint),
	    "Do not use this function.")
#define FUNC_NAME s_scm_variable_set_name_hint
{
  SCM_VALIDATE_VARIABLE (1, var);
  SCM_VALIDATE_SYMBOL (2, hint);
#if SCM_ENABLE_VCELLS
  SCM_SETCAR (SCM_SMOB_DATA (var), hint);
#endif
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME


-------------------------------------------------------



[-- Attachment #2: schemedef.scm --]
[-- Type: text/plain, Size: 5942 bytes --]


;;;  AutoGen copyright 1992-2004 Bruce Korb
;;;
;;; AutoGen is free software.
;;; You may redistribute it and/or modify it under the terms of the
;;; GNU General Public License, as published by the Free Software
;;; Foundation; either version 2, or (at your option) any later version.
;;;
;;; AutoGen is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with AutoGen.  See the file "COPYING".  If not,
;;; write to:  The Free Software Foundation, Inc.,
;;;            59 Temple Place - Suite 330,
;;;            Boston,  MA  02111-1307, USA.
;;;
;;; This module defines all the scheme initialization for AutoGen.
;;; It gets sucked up into directives.h as a single ANSI-C string.
;;; Comments, blank lines and leading white space are omitted.

(use-modules (ice-9 common-list))

(define identifier?
  (lambda (x) (or (string? x) (symbol? x))))

(define normalize-identifier
  (lambda (x)
    (if (string? x) (string->symbol x) x)))

(define coerce->string
  (lambda (x)
    (let ((char->string (lambda (x) (make-string 1 x)))
          (coercable? (lambda (x)
            (or (string? x) (boolean? x) (char? x)
                (symbol? x) (list? x) (number? x)) )) )

      (if (not (coercable? x))
          (error "Wrong type to coerce->string" x))

      (cond
        ((string? x)  (string-append
            (char->string #\") x (char->string #\")  ))

        ; Probably not what was wanted, but fun
        ((boolean? x) (if x "#t" "#f"))
        ((char? x)    (char->string x))
        ((number? x)  (number->string x))
        ((symbol? x)  (symbol->string x))
        ((list? x)    (if (every coercable? x)
            (apply string-append (map coerce->string x))  ))
) ) ) )


;;; alist->autogen-def:
;;; take a scheme alist of values, and create autogen assignments.
;;; recursive alists are handled. Using a bare list as a value to be
;;; assigned is not a terribly good idea, though it should work if it
;;; doesn't look too much like an alist The returned string doesn't
;;; contain opening and closing brackets.

(define alist->autogen-def
  (lambda (lst . recursive)
    (if (null? recursive) (set! recursive #f)
        (set! recursive #t))
    (let ((res (if recursive "{\n" ""))
          (list-nnul? (lambda (x) (and (list? x) (not (null? x))))))
      (do ((i lst (cdr i)))
          ((null? i) (if recursive
                          (string-append res "}")
                           res))
        (let* ((kvpair (car i))
               (value (cdr kvpair))
               (value-is-alist (if (and (list-nnul? value)
                                        (list-nnul? (car value))
                                        (list-nnul? (caar value))
                                        (identifier? (caaar value)))
                                   #t #f)))
          (set! res (string-append res
                (coerce->string (normalize-identifier (car kvpair)))
                " = "
                (if value-is-alist
                    (alist->autogen-def (car value) 1)
                    (coerce->string (cdr kvpair)))
                ";\n"
) ) ) ) ) )         )

;;; /*=sfunc   make_header_guard
;;;  *
;;;  * what:   create ifndef/define guard
;;;  *
;;;  * exparg: name , header group name
;;;  *
;;;  * doc:    This function will create a @code{#ifndef}/@code{#define}
;;;  *         sequence for protecting a header from multiple evaluation.
;;;  *         It will also set the Scheme variable @code{header-file}
;;;  *         to the name of the file being protected and it will set
;;;  *         @code{header-guard} to the name of the @code{#define} being
;;;  *         used to protect it.  It is expected that this will be used
;;;  *         as follows:
;;;  *         @example
;;;  *         [+ (make-header-guard "group_name") +]
;;;  *         ...
;;;  *         #endif /* [+ (. header-guard) +]
;;;  *
;;;  *         #include "[+ (. header-file)  +]"
;;;  *         @end example
;;;  *         @noindent
;;;  *         The @code{#define} name is composed as follows:
;;;  *
;;;  *         @enumerate
;;;  *         @item
;;;  *         The first element is the string argument and a separating
;;;  *         underscore.
;;;  *         @item
;;;  *         That is followed by the name of the header file with
;;;  *         illegal characters mapped to underscores.
;;;  *         @item
;;;  *         The end of the name is always, "@code{_GUARD}".
;;;  *         @end enumerate
;;;  *         
;;; =*/
;;;
(define header-file  "")
(define header-guard "")
(define (make-header-guard hdr-pfx)
  (begin
    (set! header-file  (out-name))
    (set! header-guard (string-upcase! (string->c-name! (string-append
      (if (string? hdr-pfx) hdr-pfx "HEADER") "_" header-file "_GUARD"
      ))))
    (sprintf "#ifndef %1$s\n#define %1$s" header-guard)
) )

(define autogen-version "AUTOGEN_VERSION")
(define c-file-line-fmt "#line %2$d \"%1$s\"\n")

(define-macro (defined-as predicate symbol)
  `(and (defined? ',symbol) (,predicate ,symbol)))

;;; /*=sfunc   html_escape_encode
;;;  *
;;;  * what:   encode html special characters
;;;  * general-use:
;;;  *
;;;  * exparg: str , string to make substitutions in
;;;  *
;;;  * doc:    This function will replace replace the characters @code{'&'},
;;;  *         @code{'<'} and @code{'>'} characters with the HTML/XML
;;;  *         escape-encoded strings (@code{"&amp;"}, @code{"&lt;"}, and
;;;  *         @code{"&gt;"}, respectively).
;;; =*/
;;;
(define html-escape-encode (lambda (str)
    (string-substitute str
          '("&"      "<"     ">")
          '("&amp;"  "&lt;"  "&gt;") ) ))

(use-modules (ice-9 debug))

(read-enable 'positions)

;;; end of agen5/schemedef.scm

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-02-28  1:48 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-22 19:36 Fwd: Re: Wrong type argument in procedure variable-set-name-hint! Bruce Korb
2005-02-28  1:48 ` Marius Vollmer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).