aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/analyzer.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/cljcc/analyzer.clj')
-rw-r--r--src/cljcc/analyzer.clj6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cljcc/analyzer.clj b/src/cljcc/analyzer.clj
index 504e8ab..7d82f53 100644
--- a/src/cljcc/analyzer.clj
+++ b/src/cljcc/analyzer.clj
@@ -16,10 +16,12 @@
(throw (ex-info "Undeclared variable seen." {:variable e})))
:assignment-exp (let [left (:left e)
right (:right e)
+ op (:assignment-operator e)
left-var? (= :variable-exp (:exp-type left))]
(if left-var?
(p/assignment-exp-node (resolve-exp left mp)
- (resolve-exp right mp))
+ (resolve-exp right mp)
+ op)
(throw (ex-info "Invalid lvalue." {:lvalue e}))))
:binary-exp (p/binary-exp-node (resolve-exp (:left e) mp)
(resolve-exp (:right e) mp)
@@ -33,8 +35,6 @@
(let [ident (:identifier d)
unique-name (unique-identifier ident)
updated-mp (assoc mp ident unique-name)
- _ (pp/pprint mp)
- _ (pp/pprint updated-mp)
init (when (:initial d) (resolve-exp (:initial d) updated-mp))]
(if init
{:declaration (p/declaration-node unique-name init)