Changeset 12113 in project


Ignore:
Timestamp:
10/06/08 09:17:56 (12 years ago)
Author:
Ivan Raikov
Message:

Include support for complex prefixes in the names of transition states.

Location:
release/3/nemo/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/nemo-core.scm

    r12079 r12113  
    543543                           (cases nemo:quantity x
    544544                                  (TSCOMP (name initial open transitions power)
    545                                           (let ((ss (delete-duplicates (append (map second transitions)
    546                                                                                (map third transitions)))))
    547                                             (append ss ax)))
     545                                          (let* ((ss1 (delete-duplicates (append (map second transitions)
     546                                                                                 (map third transitions))))
     547                                                 (ss2 (map (lambda (x) (list name x))  ss1)))
     548                                            (append ss2 ax)))
    548549                                  (else ax))
    549550                           ax)))
  • release/3/nemo/trunk/nemo-eggdoc.scm

    r12026 r12113  
    11;;
    22;;
    3 ;; nemx documentation for the Chicken Scheme module system.
     3;; nemo documentation for the Chicken Scheme module system.
    44;;
    55;;
     
    7575        (p (symbol-table
    7676            (describe "(INPUT {ID | (ID [AS LOCAL-ID] [FROM NAMESPACE])} ... )"
    77                       "declare an imported quantity")
     77                      (p "Declares one or several imported quantities. "
     78                         
     79                         ))
    7880            (describe "(OUTPUT ID)"
    7981                      "declare that an existing quantity be exported")
  • release/3/nemo/trunk/nemo-nmodl.scm

    r12074 r12113  
    11
    2 ;; TODO: * uniquify state names in state complexes
    3 ;;       * check that open states are valid
    4 ;;
     2;; TODO: * check that open states are valid
     3;;       * include option for generating kinetic eqs
    54;;
    65;; An extension for translating NeuroML models to NMODL descriptions.
     
    9190                            expr))
    9291         ((s . es)    (if (symbol? s)  (cons s (map (lambda (x) (rhsexpr x)) es)) expr))
    93          (id          id)))
     92         (id          (nmodl-name id))))
    9493
    9594
     
    346345
    347346(define (state-eqs n initial open transitions power)
    348   (let* ((g (make-digraph n (string-append (->string n) " transitions graph")))
     347  (let* ((sn  (lambda (x) (string->symbol (s+ n ":" x))))
     348         (g   (make-digraph n (string-append (->string n) " transitions graph")))
    349349         (add-node!  (g 'add-node!))
    350350         (add-edge!  (g 'add-edge!))
     
    356356                           (match (car tlst)
    357357                                  (('-> s0 s1 rate-expr)
    358                                    (loop (cons s0 (cons s1 lst)) (cdr tlst)))
     358                                   (loop (cons (sn s0) (cons (sn s1) lst)) (cdr tlst)))
    359359                                  (('-> _)
    360360                                   (nemo:error 'nemo:nmodl-state-eqs ": invalid transition equation "
     
    371371      (for-each (lambda (e)
    372372                  (match e (('-> s0 s1 rate-expr)
    373                             (let ((i  (car (alist-ref s0 name->id-map)))
    374                                   (j  (car (alist-ref s1 name->id-map)))
     373                            (let ((i  (car (alist-ref (sn s0) name->id-map)))
     374                                  (j  (car (alist-ref (sn s1) name->id-map)))
    375375                                  (x  (if (eq? s0 (second snode)) snex s0)))
    376376                            (add-edge! (list i j `(* ,x ,rate-expr)))))
     
    605605           
    606606           (pp indent ,nl (STATE "{"))
    607            (for-each (lambda (st) (apply define-state (list indent+ st)))
     607           (for-each (lambda (st)
     608                       (if (pair? st)
     609                           (apply define-state (list indent+ (->string (second st))))
     610                           (apply define-state (list indent+ st))))
    608611                     states)
    609612           (for-each (lambda (st) (apply define-state (list indent+ st)))
Note: See TracChangeset for help on using the changeset viewer.