Changeset 25516 in project
- Timestamp:
- 11/17/11 08:18:49 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
release/4/signal-diagram/trunk/signal-diagram.scm
r25511 r25516 42 42 symbolic-constants enum-freevars 43 43 44 construct dataflow codegen/Octave codegen/scheme codegen/ML44 construct dataflow events codegen/Octave codegen/scheme codegen/ML 45 45 ) 46 46 … … 1180 1180 1181 1181 1182 (define (events f) 1183 (let recur ((f f) (ax '())) 1184 (let ((sig (sfarrow-sig f))) 1185 (case (car sig) 1186 ((RTRANSITION) 1187 (let ((ef (fourth sig)) (eg (fifth sig))) 1188 (let* ((ax1 (cons ef ax)) 1189 (ax2 (if (symbol? eg) (cons eg ax1) ax1))) 1190 (fold recur ax2 (cdr (sfarrow-children f))) 1191 ))) 1192 ((TRANSIENT) 1193 (let ((e (fourth sig))) 1194 (let* ((ax1 (cons e ax))) 1195 (fold recur ax1 (cdr (sfarrow-children f))) 1196 ))) 1197 (else ax) 1198 )) 1199 )) 1200 1201 1182 1202 (define (codegen/Octave name f #!key (initial #f) (pre #t) (solver #f)) 1183 1203 … … 1193 1213 (fcodegen ((sfarrow-codegen f) input fenv dfe )) 1194 1214 (relations-expr (relations-codegen f input)) 1195 (events (let recur ((f f) (ax '()))1196 (let ((sig (sfarrow-sig f)))1197 (case (car sig)1198 ((RTRANSITION)1199 (let ((ef (fourth sig)) (eg (fifth sig)))1200 (let* ((ax1 (cons ef ax))1201 (ax2 (if (symbol? eg) (cons eg ax1) ax1)))1202 (fold recur ax2 (cdr (sfarrow-children f)))1203 )))1204 ((TRANSIENT)1205 (let ((e (fourth sig)))1206 (let* ((ax1 (cons e ax)))1207 (fold recur ax1 (cdr (sfarrow-children f)))1208 )))1209 (else ax)1210 ))1211 ))1212 1215 (globals (filter-map 1213 1216 (lambda (x) … … 1235 1238 "endfunction" nl)) 1236 1239 1237 (if (pair? events)1238 (let ((event-vector (map (lambda (x) (value->Octave (V:Op '- (list (V:Sel x (V:Var 'input)) (V:C 1.))))) events)))1239 (print-fragments1240 (list1241 "function " (name/Octave "retval") " = " (name/Octave (string-append (->string name) "_event")) " (input)" nl1242 "retval = [" (intersperse event-vector ",") "];" nl1243 "endfunction" nl))))1244 1245 1240 1246 1241 (if initial
Note: See TracChangeset
for help on using the changeset viewer.