3 ;; Copyright (C) 2001 Free Software Foundation, Inc.
5 ;; This program is free software; you can redistribute it and/or modify
6 ;; it under the terms of the GNU General Public License as published by
7 ;; the Free Software Foundation; either version 2, or (at your option)
10 ;; This program is distributed in the hope that it will be useful,
11 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ;; GNU General Public License for more details.
15 ;; You should have received a copy of the GNU General Public License
16 ;; along with this program; see the file COPYING. If not, write to
17 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 ;; Boston, MA 02111-1307, USA.
22 (define-module (lang elisp spec)
23 #:use-module (system lang language)
36 (define (translate-pair x)
37 (let ((name (car x)) (args (cdr x)))
39 ((quote) `(@quote ,@args))
40 ((defvar) `(@define ,@(map translate args)))
41 ((setq) `(@set! ,@(map translate args)))
42 ((if) `(@if ,(translate (car args))
43 (@begin ,@(map translate (cdr args)))))
44 ((and) `(@and ,@(map translate args)))
45 ((or) `(@or ,@(map translate args)))
46 ((progn) `(@begin ,@(map translate args)))
47 ((defun) `(@define ,(car args)
48 (@lambda ,(cadr args) ,@(map translate (cddr args)))))
49 ((lambda) `(@lambda ,(car args) ,@(map translate (cdr args))))
54 ;;; Language definition
57 (define-language elisp
62 #:translator translate