diff options
Diffstat (limited to 'src/lux/optimizer.clj')
-rw-r--r-- | src/lux/optimizer.clj | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lux/optimizer.clj b/src/lux/optimizer.clj index 56a73060c..83b44931d 100644 --- a/src/lux/optimizer.clj +++ b/src/lux/optimizer.clj @@ -13,6 +13,7 @@ ("bool" 1) ("nat" 1) ("int" 1) + ("frac" 1) ("real" 1) ("char" 1) ("text" 1) @@ -72,6 +73,8 @@ ("NatPM" 1) ;; Compare the CDN with an integer value. ("IntPM" 1) + ;; Compare the CDN with a fractional value. + ("FracPM" 1) ;; Compare the CDN with a real value. ("RealPM" 1) ;; Compare the CDN with a character value. @@ -123,6 +126,10 @@ (&/|list ($IntPM _value) $PopPM) + (&a-case/$FracTestAC _value) + (&/|list ($FracPM _value) + $PopPM) + (&a-case/$RealTestAC _value) (&/|list ($RealPM _value) $PopPM) @@ -227,6 +234,11 @@ ($IntPM _pre-value) ($AltPM pre post)) + [($FracPM _pre-value) ($FracPM _post-value)] + (if (= _pre-value _post-value) + ($FracPM _pre-value) + ($AltPM pre post)) + [($RealPM _pre-value) ($RealPM _post-value)] (if (= _pre-value _post-value) ($RealPM _pre-value) @@ -533,6 +545,9 @@ (&a/$int value) (&/T [meta ($int value)]) + + (&a/$frac value) + (&/T [meta ($frac value)]) (&a/$real value) (&/T [meta ($real value)]) |