comparison lisp/w3/dsssl.el @ 134:34a5b81f86ba r20-2b1

Import from CVS: tag r20-2b1
author cvs
date Mon, 13 Aug 2007 09:30:11 +0200
parents 0293115a14e9
children 5a88923fcbfe
comparison
equal deleted inserted replaced
133:b27e67717092 134:34a5b81f86ba
1 ;;; dsssl.el --- DSSSL parser 1 ;;; dsssl.el --- DSSSL parser
2 ;; Author: wmperry 2 ;; Author: wmperry
3 ;; Created: 1997/01/10 00:13:05 3 ;; Created: 1997/04/18 15:44:22
4 ;; Version: 1.12 4 ;; Version: 1.14
5 ;; Keywords: 5 ;; Keywords:
6 6
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ;;; Copyright (c) 1996, 1997 by William M. Perry (wmperry@cs.indiana.edu) 8 ;;; Copyright (c) 1996, 1997 by William M. Perry (wmperry@cs.indiana.edu)
9 ;;; Copyright (c) 1997 by Free Software Foundation, Inc. 9 ;;; Copyright (c) 1997 by Free Software Foundation, Inc.
25 ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, 25 ;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26 ;;; Boston, MA 02111-1307, USA. 26 ;;; Boston, MA 02111-1307, USA.
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 28
29 (require 'cl) 29 (require 'cl)
30 (require 'dsssl-flow)
30 31
31 (if (not (fboundp 'cl-copy-hashtable)) 32 (if (not (fboundp 'cl-copy-hashtable))
32 (defun cl-copy-hashtable (h) 33 (defun cl-copy-hashtable (h)
33 (let ((new (make-hash-table))) 34 (let ((new (make-hash-table)))
34 (cl-maphash (function (lambda (k v) (cl-puthash k v new))) h) 35 (cl-maphash (function (lambda (k v) (cl-puthash k v new))) h)
35 new))) 36 new)))
36
37 ;; We need to have this up at the top to avoid compilation warnings in
38 ;; 'make' in dsssl-eval. Call me anal.
39 (defstruct flow-object
40 (name 'unknown :read-only t) ; Name of this flow object
41 (properties nil)
42 (children nil)
43 (parent nil)
44 )
45 37
46 (defconst dsssl-builtin-functions 38 (defconst dsssl-builtin-functions
47 '(not boolean\? case equal\? null\? list\? list length append 39 '(not boolean\? case equal\? null\? list\? list length append
48 reverse list-tail list-ref member symbol\? keyword\? quantity\? 40 reverse list-tail list-ref member symbol\? keyword\? quantity\?
49 number\? real\? integer\? = < > <= >= + * - / max min abs quotient 41 number\? real\? integer\? = < > <= >= + * - / max min abs quotient
329 (setf (nth temp props) 321 (setf (nth temp props)
330 (intern (concat ":" (match-string 1 symname))))) 322 (intern (concat ":" (match-string 1 symname)))))
331 (setq temp (- temp 2))) 323 (setq temp (- temp 2)))
332 324
333 ;; Create the actual flow object 325 ;; Create the actual flow object
334 (make-flow-object :name type 326 (make-flow-object :type type
335 :children children 327 :children children
336 :properties props) 328 :properties props)
337 ) 329 )
338 ) 330 )
339 (time 331 (time