Changeset 9340 for lang/elisp

Show
Ignore:
Timestamp:
04/12/08 09:26:15 (8 months ago)
Author:
lieutar
Message:

lang/elisp/trunk: I built new directory composition for my project.

Location:
lang/elisp/escm/trunk
Files:
4 added
2 modified
21 moved

Legend:

Unmodified
Added
Removed
  • lang/elisp/escm/trunk/Makefile.el

    r9197 r9340  
    4444(defun escm-make.elc () 
    4545  (mapcar (function escm-make::compile) escm-make::els)) 
     46 
     47(defun escm) 
     48 
    4649;;(escm-make.elc) 
  • lang/elisp/escm/trunk/Makefile.in

    r9339 r9340  
    3535clean: 
    3636        rm -rf *.elc 
     37 
     38distclean: clean 
     39        rm -rf config.log config.status Makefile 
  • lang/elisp/escm/trunk/src/elisp/DEVELOPERSTOOLS.el

    r9197 r9340  
    2525(when nil 
    2626 
    27   (escm-vm::eval (escm-vm::new)  '(+ 0 1 2 3)) 
    2827  (escm-vm::eval (escm-vm::new)  '(+ 0 1 (* 2 3) 4)) 
    2928  (escm-vm::eval (escm-vm::new)  '(if nil 1 2)) 
     
    106105  ((elambda (a b) (+ a b)) 1 2) 
    107106  ) 
    108  
    109  
  • lang/elisp/escm/trunk/src/elisp/escm-port.el

    r9197 r9340  
    2828 
    2929(require 'escm-base) 
     30(require 'escm-preprocess) 
    3031 
    3132(escm-cbos::define-class (escm-port)) 
     
    3536 
    3637;; [R5RS] 
    37 (escm-cbos::define-method escm-port escmp-port::input-port? (self) nil) 
    3838;; [R5RS] 
    39 (escm-cbos::define-method escm-port escmp-port::output-port? (self) nil) 
    40  
     39(escm-cbos::define-method escm-port escm-port::input-port? (self) nil) 
     40(escm-cbos::define-method escm-port escm-port::output-port? (self) nil) 
    4141 
    4242(escm-cbos::define-class (escm-output-port escm-port)) 
     
    4545;;     [R5RS] Closes input and output port, respectively  
    4646 
     47(escm-cbos::define-class (escm-input-port escm-port)) 
     48(escm-cbos::define-method escm-input-port escm-port::input-port? (self) t) 
     49(escm-cbos::define-method escm-input-port escm-input-port::read (self)) 
     50(escm-cbos::define-method escm-input-port escm-input-port::close-input-port (self)) 
     51(escm-cbos::define-method escm-input-port escm-input-port::read-char (self)) 
     52(escm-cbos::define-method escm-input-port escm-input-port::peek-char (self)) 
     53(escm-cbos::define-method escm-input-port escm-input-port::char-ready? (self)) 
    4754 
    48 (escm-cbos::define-class (escm-input-port escm-port)) 
    49  
    50 (escm-cbos::define-method escm-input-port 
    51   escm-input-port::read (self)) 
    52  
    53 (escm-cbos::define-method escm-input-port 
    54   escm-input-port::close-input-port (self)) 
    55  
    56 (escm-cbos::define-method escm-input-port 
    57   escm-input-port::read-char (self)) 
    58  
    59 (escm-cbos::define-method escm-input-port 
    60   escm-input-port::peek-char (self)) 
    61  
    62 (escm-cbos::define-method escm-input-port 
    63   escm-input-port::char-ready? (self)) 
    64  
    65  
    66  
    67 (escm-cbos::define-class (escm-input-file escm-input-port) buffer position) 
     55(escm-cbos::define-class (escm-input-file escm-input-port) buffer position file) 
    6856 
    6957(defsubst escm-input-file::new (file) 
    70   "creates a filehandle that bound to given path." 
     58  "Create input port that associated the FILE." 
    7159  (let* ((self (create-escm-input-file)) 
    7260         (buf  (find-file-noselect file nil nil))) 
     
    7462      (set-buffer buf) 
    7563      (rename-buffer (format " *escm-open %s*" file))) 
    76     (escm-input-file::set-buffer  buf) 
    77     (escm-input-file::set-positon 1) 
     64    (escm-input-file::set-file    self file) 
     65    (escm-input-file::set-buffer  self buf) 
     66    (escm-input-file::set-positon self 1) 
    7867    self)) 
     68 
     69(defsubst escm-input-file::read (self) 
     70  "Reads sexp from port." 
     71  (let ((buf (escm-input-file::get-buffer self)) 
     72        (ret nil)) 
     73  (save-excursion 
     74    (set-buffer buf) 
     75    (goto-char (escm-input-file::get-positon self)) 
     76    (setq ret (escm-preprocess::process-elisp-quotes (read buf))) 
     77    (escm-input-file::set-positon self (point)) 
     78    ret))) 
    7979 
    8080(defsubst escm-input-file::at-eof? (self) 
     
    9393      (when r (aref r 0))))) 
    9494 
    95  
    9695(defsubst escm-input-file::peek-char (self) 
    9796  (if (escm-input-file::at-eof? self) nil 
     
    105104 
    106105(defsubst escm-input-file::close-input-port (self) 
    107   "closes filehandle." 
     106  "Closes the port that is givened as SELF." 
    108107  (kill-buffer (escm-input-file::get-buffer self)) 
    109108  (escm-input-file::set-buffer self nil)) 
     
    112111  (not (escm-input-file::at-eof? self))) 
    113112 
     113(escm-cbos::define-method escm-input-file 
     114  escm-input-port::read (self) 
     115  (escm-input-file::read self)) 
    114116 
    115117(escm-cbos::define-method escm-input-file 
     
    129131  (escm-input-file::char-ready? self)) 
    130132 
    131  
    132  
     133(escm-test::define-test ) 
    133134 
    134135(provide 'escm-stream) 
  • lang/elisp/escm/trunk/src/elisp/escm-syntax.el

    r9113 r9340  
    5656    self)) 
    5757 
    58  
    5958(defsubst escm-builtin-syntax::new (proc) 
    6059  (let ((self (create-escm-builtin-syntax))) 
     
    6665                   name 
    6766                   (escm-builtin-syntax::new fun))) 
     67 
    6868(put 'escm-define-builtin-syntax 'lisp-indent-function 'defun) 
    6969 
  • lang/elisp/escm/trunk/src/elisp/escm-vm.el

    r9197 r9340  
    3232(require 'escm-compile    ) 
    3333(require 'escm-debug      ) 
    34  
     34(require 'escm-port       ) 
    3535 
    3636(defvar   escm-vm::init-hook    ()) 
     
    170170;;(escm-test::run 'escm 'escm-vm-eval) 
    171171 
    172 (defsubst escm-vm::compile (vm sexp) 
    173   (escm-iproc::merge  
    174    (escm-compile (escm-context::set-tail? 
    175                   (escm-context::new (escm-vm::current-env vm) vm) t) 
    176                  (escm-preprocess::process-elisp-quotes sexp)) 
    177    (escm-icode '((ret))))) 
    178  
    179 (defsubst escm-vm::compile-top-level (vm sexp) 
    180   (let ((iproc (escm-vm::compile vm sexp))) 
    181     (escm-iproc::set-src iproc sexp) 
    182     (escm-iproc::to-proc iproc 
    183                          (escm-arity::new ()) 
    184                          (escm-vm::current-env vm)))) 
    185  
    186 (defun escm-vm::eval (vm sexp) 
    187   (escm-vm::apply vm (escm-vm::compile-top-level vm sexp)  nil)) 
     172(escm-util::expand 
     173 (let ((build 
     174        (lambda (suffix pp) 
     175          `((defsubst ,(intern (concat "escm-vm::compile" suffix)) (vm sexp) 
     176               (escm-iproc::merge  
     177                (escm-compile (escm-context::set-tail? 
     178                               (escm-context::new 
     179                                (escm-vm::current-env vm) vm) t) 
     180                              ,(funcall pp 'sexp)) 
     181                (escm-icode '((ret))))) 
     182 
     183             (defsubst ,(intern (concat "escm-vm::compile-top-level" suffix)) (vm sexp) 
     184               (let ((iproc (escm-vm::compile vm sexp))) 
     185                 (escm-iproc::set-src iproc sexp) 
     186                 (escm-iproc::to-proc iproc 
     187                                      (escm-arity::new ()) 
     188                                      (escm-vm::current-env vm)))) 
     189 
     190             (defun ,(intern (concat "escm-vm::eval" suffix)) (vm sexp) 
     191               (escm-vm::apply vm (escm-vm::compile-top-level vm sexp)  nil)) 
     192             )))) 
     193 
     194   `( ,@(funcall build "" (lambda (sexp) 
     195                             `(escm-preprocess::process-elisp-quotes ,sexp))) 
     196      ,@(funcall build "1" (lambda (sexp) sexp))))) 
     197 
    188198 
    189199(defsubst escm-vm::define (vm sym val) 
     
    211221    ret)) 
    212222 
    213 (defsubst escm-vm::load1 (vm path) 
    214    
    215   ) 
    216  
    217223(defun escm-vm::load (vm name) 
    218224  (let ((path (escm-vm::locate-library vm name))) 
    219225    (when path (escm-vm::load1 path)))) 
    220226 
     227(defsubst escm-vm::load1 (vm path) 
     228  (let ((port (escm-input-file::new path)) 
     229        (sexp )) 
     230    (while (setq sexp (escm-input-file::read port)) 
     231      (escm-vm::eval vm sexp)))) 
     232 
    221233(provide 'escm-vm) 
    222234;;; escm-vm.el ends here