Changeset 22162 in project


Ignore:
Timestamp:
12/30/10 20:43:25 (9 years ago)
Author:
Ivan Raikov
Message:

9ML-toolkit: require miniML version 1.1 in .meta and .setup files

Location:
release/4/9ML-toolkit/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • release/4/9ML-toolkit/trunk/9ML-toolkit.meta

    r22027 r22162  
    2626 ; A list of eggs 9ML-toolkit depends on.
    2727
    28  (needs matchable datatype static-modules miniML (getopt-long  1.8)
     28 (needs matchable datatype static-modules (miniML 1.1) (getopt-long  1.8)
    2929        ssax sxml-transforms sxpath object-graph format-graph
    3030        signal-diagram silex lalr setup-helper)
  • release/4/9ML-toolkit/trunk/9ML-toolkit.setup

    r22115 r22162  
    55
    66(required-extension-version 'getopt-long 1.9)
     7(required-extension-version 'miniML 1.1)
    78
    89(make (
  • release/4/9ML-toolkit/trunk/NineMLrepr.scm

    r22119 r22162  
    2323(module NineMLrepr
    2424
    25         (sxml-value->sexpr print-fragments
     25        (sxml-value->sexpr sexpr->diagram+initial+fundecls print-fragments
    2626         print-eval-env print-type-env print-source-defs print-nxml )
    2727
     
    487487        )))
    488488  ))
     489
     490
     491(define (sexpr->diagram+initial+fundecls h sexpr)
     492
     493    (define initenv  (make-parameter '()))
     494    (define fundecls (make-parameter '()))
     495
     496    (define (ODE indep dep rhs)
     497      (let ((vars (enumvars rhs '())))
     498        (ACTUATE (list indep dep) (Dh indep dep h (SENSE vars (PURE (make-function vars rhs)))))))
     499
     500    (define (ASSIGN var rhs)
     501      (let ((vars (enumvars rhs '())))
     502        (ACTUATE `(,var) (SENSE vars (PURE (make-function vars rhs))))))
     503
     504    (let ((diagram
     505           (let recur ((sexpr sexpr))
     506             (or (and (pair? sexpr)
     507                      (case (car sexpr)
     508                       
     509                        ((diagram)
     510                         (let ((sexpr (cdr sexpr)))
     511                           (case (car sexpr)
     512                             
     513                             ((IDENTITY)       (IDENTITY))
     514                             ((PURE)           (let ((f  (sexpr->function (cadr sexpr)))
     515                                                     (id (gensym 'f)))
     516                                                 (fundecls (cons (cons id f) (fundecls)))
     517                                                 (PURE id)))
     518                             ((SEQUENCE)       (SEQUENCE (recur (cadr sexpr)) (recur (caddr sexpr))))
     519                             ((UNION)          (UNION (recur (cadr sexpr)) (recur (caddr sexpr))))
     520                             ((PIPE)           (PIPE (recur (cadr sexpr)) (recur (caddr sexpr))))
     521                             ((SENSE)          (SENSE (cadr sexpr) (recur (caddr sexpr))))
     522                             ((ACTUATE)        (ACTUATE (cadr sexpr) (recur (caddr sexpr))))
     523                             ((LOOP)           (LOOP (cadr sexpr) (recur (caddr sexpr))))
     524                             
     525                             ((TRANSIENT)      (TRANSIENT (recur (cadr sexpr)) (recur (caddr sexpr))
     526                                                          (recur (cadddr sexpr))))
     527                             ((TRANSITION)     (TRANSITION (recur (cadr sexpr)) (recur (caddr sexpr))
     528                                                           (recur (cadddr sexpr))))
     529                             ((RTRANSITION)    (RTRANSITION (recur (cadr sexpr)) (recur (caddr sexpr))
     530                                                            (recur (cadddr sexpr)) (recur (cadddr (cdr sexpr)))))
     531                             ((ODE)            (ODE (cadr sexpr) (caddr sexpr) (recur (cadddr sexpr))))
     532                             ((ASSIGN)         (ASSIGN (cadr sexpr) (recur (caddr sexpr))))
     533                             ((RELATION)       (let ((n (cadr sexpr)) (x (caddr sexpr))
     534                                                     (f (sexpr->function (cadddr sexpr)))
     535                                                     (d (car (cddddr sexpr))))
     536                                                 (RELATION n x f (recur d))))
     537                             (else             (error 'sexpr->diagram "invalid diagram constructor" sexpr))
     538                             )))
     539
     540                        ((realsig)   (let ((name (cadr sexpr))
     541                                           (value (caddr sexpr)))
     542                                       (initenv (cons (cons name value) (initenv)))
     543                                       name))
     544                        ((boolsig)   (let ((name (cadr sexpr))
     545                                           (value (caddr sexpr)))
     546                                       (initenv (cons (cons name value) (initenv)))
     547                                       name))
     548                        (else (map recur sexpr))))
     549                 sexpr))
     550           ))
     551
     552      (list diagram (initenv) (fundecls))))
     553
     554
     555
    489556)
  • release/4/9ML-toolkit/trunk/ivp.scm

    r22119 r22162  
    156156
    157157
    158   (define (sexpr->diagram+initial+fundecls h sexpr)
    159 
    160     (define initenv  (make-parameter '()))
    161     (define fundecls (make-parameter '()))
    162 
    163     (define (ODE indep dep rhs)
    164       (let ((vars (enumvars rhs '())))
    165         (ACTUATE (list indep dep) (Dh indep dep h (SENSE vars (PURE (make-function vars rhs)))))))
    166 
    167     (define (ASSIGN var rhs)
    168       (let ((vars (enumvars rhs '())))
    169         (ACTUATE `(,var) (SENSE vars (PURE (make-function vars rhs))))))
    170 
    171     (let ((diagram
    172            (let recur ((sexpr sexpr))
    173              (or (and (pair? sexpr)
    174                       (case (car sexpr)
    175                        
    176                         ((diagram)
    177                          (let ((sexpr (cdr sexpr)))
    178                            (case (car sexpr)
    179                              ((IDENTITY)       (IDENTITY))
    180                              ((PURE)           (let ((f  (sexpr->function (cadr sexpr)))
    181                                                      (id (gensym 'f)))
    182                                                  (fundecls (cons (cons id f) (fundecls)))
    183                                                  (PURE id)))
    184                              ((SEQUENCE)       (SEQUENCE (recur (cadr sexpr)) (recur (caddr sexpr))))
    185                              ((UNION)          (UNION (recur (cadr sexpr)) (recur (caddr sexpr))))
    186                              ((PIPE)           (PIPE (recur (cadr sexpr)) (recur (caddr sexpr))))
    187                              ((SENSE)          (SENSE (cadr sexpr) (recur (caddr sexpr))))
    188                              ((ACTUATE)        (ACTUATE (cadr sexpr) (recur (caddr sexpr))))
    189                              ((LOOP)           (LOOP (cadr sexpr) (recur (caddr sexpr))))
    190                              ((TRANSIENT)      (TRANSIENT (recur (cadr sexpr)) (recur (caddr sexpr))
    191                                                           (recur (cadddr sexpr))))
    192                              ((TRANSITION)     (TRANSITION (recur (cadr sexpr)) (recur (caddr sexpr))
    193                                                            (recur (cadddr sexpr))))
    194                              ((RTRANSITION)    (RTRANSITION (recur (cadr sexpr)) (recur (caddr sexpr))
    195                                                             (recur (cadddr sexpr)) (recur (cadddr (cdr sexpr)))))
    196                              ((ODE)            (ODE (cadr sexpr) (caddr sexpr) (recur (cadddr sexpr))))
    197                              ((ASSIGN)         (ASSIGN (cadr sexpr) (recur (caddr sexpr))))
    198                              (else             (error 'sexpr->diagram "invalid diagram constructor" sexpr))
    199                              )))
    200 
    201                         ((realsig)   (let ((name (cadr sexpr))
    202                                            (value (caddr sexpr)))
    203                                        (initenv (cons (cons name value) (initenv)))
    204                                        name))
    205                         ((boolsig)   (let ((name (cadr sexpr))
    206                                            (value (caddr sexpr)))
    207                                        (initenv (cons (cons name value) (initenv)))
    208                                        name))
    209                         (else (map recur sexpr))))
    210                  sexpr))
    211            ))
    212 
    213       (list diagram (initenv) (fundecls))))
    214158   
    215159
Note: See TracChangeset for help on using the changeset viewer.