guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Data Dictionary and Configuration Files with Guile Scheme


From: Romel Sandoval
Subject: Data Dictionary and Configuration Files with Guile Scheme
Date: Thu, 05 Aug 2010 12:15:44 -0500

Hi,

I'm trying to create a data dictionary [1] to generate code from it. But
since I'm a scheme newbie I was wondering if this is the best method:

{{{
(define-syntax table
  (syntax-rules ()
    ((table name ...)
     (list 'table name ...))))

(define-syntax column
  (syntax-rules ()
        ((column name ...)
         (list 'column name ...))))

(define-syntax type
  (syntax-rules ()
        ((type symbol)
         (cons 'type symbol))))

(define-syntax constraint
  (syntax-rules ()
        ((constraint symbol)
         (cons 'constraint symbol))))

(define-syntax length
  (syntax-rules ()
        ((length value)
         (cons 'length value))))

(define *projects-table*
  (table "projects"
        (column "id" 
                (type 'integer) (constraint 'primary-key))
        (column "title" 
                (type 'string) (length 32) (constraint 'not-null))))
}}}

This way I can write s-exp as in the example *projects-table* an after a
load I will have the data structure ready to work with it.

{{{
scheme@(guile-user)> (load "dd.scm")
scheme@(guile-user)> *projects-table*
(table "projects" (column "id" (type . integer) (constraint .
primary-key)) (column "title" (type . string) (length . 32)
(constraint . not-null)))
}}}

I think this could be a good way to define configuration files too.

What do you think?
Exists better alternatives with Guile?
This mail should go to another list? :-)

Regards,

-- 
Romel R. Sandoval-Palomo

[1]http://database-programmer.blogspot.com/2008/06/using-data-dictionary.html






reply via email to

[Prev in Thread] Current Thread [Next in Thread]