Skip to content

Commit 3439c8e

Browse files
committed
refactoring to avoid record definitions where the constructor name is the same as the type name
1 parent b1b0850 commit 3439c8e

4 files changed

Lines changed: 85 additions & 80 deletions

File tree

codegen.scm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@
799799

800800

801801
(linkextevfun
802-
(let* ((dflt (constant 'number +inf.0 'unitbottom))
802+
(let* ((dflt (make-constant 'number +inf.0 'unitbottom))
803803
(blocks (fold-reinit-blocks/priority ode-inds extevlink-blocks dflt))
804804
(stmts (codegen-set-stmts/index (compose codegen-expr1 cdr) blocks (map car blocks) 'extev_out)))
805805
(V:Fn '(extev extev_out)

parser.scm

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -257,10 +257,10 @@
257257

258258
(define (parse-datum e)
259259
(cond
260-
((boolean? e) (constant 'boolean e unitless))
261-
((number? e) (constant 'number e unitless))
262-
((symbol? e) (constant 'symbol e unitless))
263-
((vector? e) (constant 'vector (vector->list e) unitless))
260+
((boolean? e) (make-constant 'boolean e unitless))
261+
((number? e) (make-constant 'number e unitless))
262+
((symbol? e) (make-constant 'symbol e unitless))
263+
((vector? e) (make-constant 'vector (vector->list e) unitless))
264264
(else (salt:error 'parse-datum "Unknown datum: " e))
265265
))
266266

@@ -536,7 +536,7 @@
536536
(d 'parse-function "formals-ast = ~A formals-env = ~A~%" formals-ast formals-env)
537537
(match exp-or-body
538538
(('= . expr)
539-
(function
539+
(make-function
540540
(free-variable-name
541541
(parse-variable env function-name))
542542
formals-ast
@@ -561,6 +561,7 @@
561561
)))
562562

563563
(define (parse-define-unit pattern rhs env)
564+
(d 'parse-define-unit "pattern = ~A rhs = ~A~%" pattern rhs)
564565
(match rhs
565566
((('dim-vector . dims) factor-expr)
566567
(make-unit (free-variable-name (parse-variable env pattern))
@@ -569,7 +570,7 @@
569570
((dim-expr factor-expr)
570571
(d 'parse-define-unit "dim-expr = ~A~%" dim-expr)
571572
(make-unit (free-variable-name (parse-variable env pattern))
572-
(parse-sym-infix-expr dim-expr)
573+
(parse-dim pattern (parse-sym-infix-expr dim-expr))
573574
(parse-sym-infix-expr factor-expr) '()))
574575
(else
575576
(salt:error 'parse-define-unit "Not a valid unit definition: " rhs))
@@ -595,7 +596,7 @@
595596
(recur rst dim num))
596597

597598
(else
598-
(external
599+
(make-external
599600
(gensym 'ext)
600601
(free-variable-name
601602
(parse-variable env pattern))
@@ -620,7 +621,7 @@
620621
(recur rst dim order sym))
621622

622623
(else
623-
(externalev
624+
(make-externalev
624625
(gensym 'extev)
625626
(free-variable-name
626627
(parse-variable env pattern))
@@ -674,15 +675,15 @@
674675
Unity))
675676
(('= 'parameter ('dim u) . expr)
676677
(let ((dim-val (parse-dim pattern u)))
677-
(parameter
678+
(make-system-parameter
678679
(gensym 'p)
679680
(free-variable-name
680681
(parse-variable env pattern))
681682
(parse-expression env (parse-sym-infix-expr expr))
682683
dim-val)
683684
))
684685
(('= 'parameter . expr)
685-
(parameter
686+
(make-system-parameter
686687
(gensym 'p)
687688
(free-variable-name
688689
(parse-variable env pattern))
@@ -702,7 +703,7 @@
702703
(declared-constant
703704
(free-variable-name
704705
(parse-variable env pattern))
705-
(constant
706+
(make-constant
706707
'number
707708
(constant-value cvalue)
708709
(cdr unit-assoc))
@@ -729,7 +730,7 @@
729730
(d 'parse-equations "pattern = ~A~%rhs = ~A~%" pattern rhs)
730731
(match rhs
731732
(('= . rhs)
732-
(eq (parse-variable env pattern)
733+
(make-eq (parse-variable env pattern)
733734
(parse-expression env (parse-sym-infix-expr rhs))))
734735
(else
735736
(salt:error 'parse-equation "Not a valid rhs: " rhs))

0 commit comments

Comments
 (0)