aboutsummaryrefslogtreecommitdiff
path: root/src/cljcc/util.clj
diff options
context:
space:
mode:
authorShagun Agrawal <agrawalshagun07@gmail.com>2024-12-12 00:07:27 +0530
committerShagun Agrawal <agrawalshagun07@gmail.com>2024-12-12 00:07:27 +0530
commit837d5c5d0a2704ebfe48de3799936bf98330e134 (patch)
tree706af2879ddbf823e97715a04516e2b3bc32f258 /src/cljcc/util.clj
parentf2a60f486821118d11ab2bb7f496450176193411 (diff)
Assembly codeden for long type
Used clojure core match Added assembly phase
Diffstat (limited to 'src/cljcc/util.clj')
-rw-r--r--src/cljcc/util.clj16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/cljcc/util.clj b/src/cljcc/util.clj
index 6ced120..01eabd4 100644
--- a/src/cljcc/util.clj
+++ b/src/cljcc/util.clj
@@ -87,7 +87,7 @@
_ (-> strip-l-or-L
Long/parseLong
Long/toString)]
- s)
+ s)
(catch Exception _e
false)))
@@ -102,3 +102,17 @@
(exc/lex-error {:line line
:col col})))
+(defn round-away-from-zero [num div]
+ (let [div (abs div)]
+ (cond
+ (= (mod num div) 0) num
+ (< num 0) (- num (- div (mod num div)))
+ :else (+ num (- div (mod num div))))))
+
+(defn in-int-range?
+ "Verifies whether -2^31 <= x <= 2^31."
+ [v]
+ (and (>= v Integer/MIN_VALUE)
+ (<= v Integer/MAX_VALUE)))
+
+(not (in-int-range? Long/MAX_VALUE))