Initial Commit
[packages] / xemacs-packages / ilisp / ilisp-sym.el
1 ;;; -*- Mode: Emacs-Lisp -*-
2
3 ;;; ilisp-sym.el --
4 ;;; ILISP Lisp symbol utils.
5 ;;;
6 ;;; This file is part of ILISP.
7 ;;; Please refer to the file COPYING for copyrights and licensing
8 ;;; information.
9 ;;; Please refer to the file ACKNOWLEGDEMENTS for an (incomplete) list
10 ;;; of present and past contributors.
11 ;;;
12 ;;; $Id: ilisp-sym.el,v 1.3 2001-07-02 09:40:49 youngs Exp $
13
14 ;;; Notes:
15 ;;;
16 ;;; 19990804 Marco Antoniotti
17 ;;; This should become a DEFSTRUCT
18 ;;;
19 ;;; (defstruct (lisp-symbol (:constructor lisp-symbol))
20 ;;;   package
21 ;;;   (delimiter "::")
22 ;;;   name)
23
24 ;;;%%Symbol
25 (defun lisp-symbol (package delimiter name)
26   "Create a LISP symbol."
27   (list package (when package (or delimiter "::")) name))
28
29 (defun lisp-symbol-name (symbol)
30   "Return the name of SYMBOL."
31   (car (cdr (cdr symbol))))
32
33 (defun lisp-symbol-package (symbol)
34   "Return the package of SYMBOL."
35   (car symbol))
36
37 (defun lisp-symbol-delimiter (symbol)
38   "Return the qualifier of SYMBOL."
39   (car (cdr symbol)))
40
41 ;;;
42 (defun lisp-symbol= (symbol1 symbol2)
43   "Return T is SYMBOL1 is equal to SYMBOL2."
44   (and (string= (lisp-symbol-name symbol1) (lisp-symbol-name symbol2))
45        (string= (lisp-symbol-package symbol1) (lisp-symbol-package symbol2))
46        (string= (lisp-symbol-delimiter symbol1)
47                 (lisp-symbol-delimiter symbol2))))
48
49 ;;; end of file -- ilisp-sym.el --