Changeset 11898 in project


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

Fixed to the XML frontend.

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

Legend:

Unmodified
Added
Removed
  • release/3/nemo/trunk/examples/AKP06/PotIhCa.sxml

    r11896 r11898  
    11(*TOP* (*PI* (xml (@ (version 1.0))))
    22       (ncml:model
    3          (@ (name PotIhCa))
     3         (@ (name PotIhCa) (xmlns:ncml ncml))
    44         (ncml:input (@ (id v)))
    55         (ncml:input (@ (id cai)))
    66         (ncml:input (@ (id cao)))
    7          (ncml:const (@ (id Vrest)) (expr -68))
    8          (ncml:const (@ (id diam)) (expr 20))
    9          (ncml:const (@ (id celsius)) (expr 24))
    10          (ncml:const (@ (id F)) (expr 96485.0))
    11          (ncml:const (@ (id R)) (expr 8.3145))
     7         (ncml:const (@ (id Vrest)) (ncml:expr -68))
     8         (ncml:const (@ (id diam)) (ncml:expr 20))
     9         (ncml:const (@ (id celsius)) (ncml:expr 24))
     10         (ncml:const (@ (id F)) (ncml:expr 96485.0))
     11         (ncml:const (@ (id R)) (ncml:expr 8.3145))
    1212         (ncml:const
    1313           (@ (id temp_adj))
    14            (expr (ncml:pow 3 (ncml:div (ncml:sub (ncml:id celsius) 22) 10))))
     14           (ncml:expr (ncml:pow 3 (ncml:div (ncml:sub (ncml:id celsius) 22) 10))))
    1515         (ncml:component
    1616           (@ (type ion-channel))
    1717           (ncml:component
    1818             (@ (type pore))
    19              (ncml:const (@ (id gbar_Kv1)) (expr 0.011))
     19             (ncml:const (@ (id gbar_Kv1)) (ncml:expr 0.011))
    2020             (ncml:output (@ (id gbar_Kv1))))
    2121           (ncml:component
    2222             (@ (type "permeating-substance") (name k))
    23              (ncml:const (@ (id e_Kv1)) (expr -85))
     23             (ncml:const (@ (id e_Kv1)) (ncml:expr -85))
    2424             (ncml:output (@ (id e_Kv1))))
    2525           (ncml:component
    2626             (@ (type gate))
    27              (ncml:const (@ (id cma)) (expr 0.12889))
    28              (ncml:const (@ (id cka)) (expr -33.90877))
    29              (ncml:const (@ (id cva)) (expr 45))
     27             (ncml:const (@ (id cma)) (ncml:expr 0.12889))
     28             (ncml:const (@ (id cka)) (ncml:expr -33.90877))
     29             (ncml:const (@ (id cva)) (ncml:expr 45))
    3030             (ncml:defun
    3131               (@ (id Kv1_amf))
     
    4040                         (ncml:sum (ncml:id v) (ncml:id cva))
    4141                         (ncml:id cka)))))))
    42              (ncml:const (@ (id cmb)) (expr 0.12889))
    43              (ncml:const (@ (id ckb)) (expr 12.42101))
    44              (ncml:const (@ (id cvb)) (expr 45))
     42             (ncml:const (@ (id cmb)) (ncml:expr 0.12889))
     43             (ncml:const (@ (id ckb)) (ncml:expr 12.42101))
     44             (ncml:const (@ (id cvb)) (ncml:expr 45))
    4545             (ncml:defun
    4646               (@ (id Kv1_bmf))
  • release/3/nemo/trunk/nemo.scm

    r11896 r11898  
    162162                    (lambda (node bindings root env)
    163163                      (let ((id    (sxml:attr node 'id))
    164                             (from  (sxml:kidn 'from node))
    165                             (as    (sxml:kidn 'as node)))
     164                            (from  (sxml:kidn 'ncml:from node))
     165                            (as    (sxml:kidn 'ncml:as node)))
    166166                        (if (not id) (error 'input-template "input declaration requires id attribute"))
    167167                        (cond ((and from as)  `(input (,($ id) as ,($ (second as) ) from ,($ (second from)) )))
     
    185185                                          (error 'const-template "const declaration " id " requires expr element")
    186186                                          (ncml-expr->expr (second x))))
    187                                    (sxml:kidn 'expr node))))
     187                                   (sxml:kidn 'ncml:expr node))))
    188188                        (if (not id) (error 'const-template "const declaration requires id attribute"))
    189189                        `(const ,($ id) = ,expr)))))
     
    199199                                                "state complex transition requires rate element")
    200200                                         (ncml-expr->expr (second x))))
    201                                    (sxml:kidn 'rate node))))
     201                                   (sxml:kidn 'ncml:rate node))))
    202202                        (if (not src) (error 'state-complex-transition-template
    203203                                             "state complex transition requires src attribute"))
     
    214214                                          (error 'asgn-template "algebraic assignment requires expr element")
    215215                                          (ncml-expr->expr (second x))))
    216                                    (sxml:kidn 'expr node))))
     216                                   (sxml:kidn 'ncml:expr node))))
    217217                        (if (not id) (error 'asgn-template "algebraic assignment requires id attribute"))
    218218                        `(,($ id) = ,expr)))))
     
    228228                                                   "state complex declaration requires initial element")
    229229                                            (ncml-expr->expr (second x))))
    230                                       (sxml:kidn 'initial node)))
     230                                      (sxml:kidn 'ncml:initial node)))
    231231                            (open ((lambda (x)
    232232                                     (if (not x) 
     
    234234                                                "state complex declaration requires open element")
    235235                                         ($ (second x))))
    236                                    (sxml:kidn 'open node)))
     236                                   (sxml:kidn 'ncml:open node)))
    237237                            (power ((lambda (x)
    238238                                      (if (not x) 
     
    240240                                                 "state complex declaration requires open element")
    241241                                          (string->integer (second x))))
    242                                     (sxml:kidn 'power node)))
     242                                    (sxml:kidn 'ncml:power node)))
    243243                            (transitions ((lambda (x)
    244244                                            (if (not x) 
     
    247247                                                (let ((tmpl (sxml:make-null-ss state-complex-transition-template)))
    248248                                                  (stx:apply-templates x tmpl root env))))
    249                                           (sxml:kidn 'transitions node))))
     249                                          (sxml:kidn 'ncml:transitions node))))
    250250                                         
    251251                        (if (not id) (error 'state-complex-template "state complex transition requires id attribute"))
     
    271271                                   (sxml:kidn 'ncml:body node))))
    272272                        (if (not id) (error 'defun-template "function definition requires id attribute"))
    273                         `(defun ,id ,args ,body)))))
     273                        `(defun ,($ id) ,args ,body)))))
    274274
    275275       (component-template
     
    374374       (loop (cdr fragments) #t)))))
    375375
     376(define (ensure-xmlns doc)
     377  (sxml:add-attr doc '(xmlns ncml)))
    376378 
    377379(define (main options operands)
     
    407409                     (else (error "nmodl-method must be one of cnexp, derivimplicit"))))))
    408410           (if sxml-fname (with-output-to-file sxml-fname (lambda () (pretty-print doc))))
    409            (if xml-fname  (let ((doc1 (cond ((eq? (car doc) '*TOP*)
    410                                              (if (eq? (car (cadr doc)) '*PI*) (cddr doc) (cdr doc)))
    411                                             (else doc))))
     411           (if xml-fname  (let ((doc1 (ensure-xmlns
     412                                       (cond ((eq? (car doc) '*TOP*) (assoc 'ncml:model (cdr doc)))
     413                                             (else doc)))))
    412414                            (with-output-to-file xml-fname (lambda () (print-fragments (generate-XML `(begin ,doc1)))))))
    413415           (with-output-to-file
Note: See TracChangeset for help on using the changeset viewer.