HFitUI-0.1.0.0: src/WebUI/Scripts/JavaScript/HJSExps.hs
{-# LANGUAGE ScopedTypeVariables #-}
----------------------------------------------------------------
-- Модуль приложения
-- Скрипты графического интерфейса (HScript)
-- Выражения для языка JavaScript
----------------------------------------------------------------
module WebUI.Scripts.JavaScript.HJSExps
(-- HJsExp (..)
) where
-- Импорт модулей
import Prelude as PRL
import Data.Char (toLower)
import Data.String.Utils (strip)
import WebUI.Scripts.HScript
import WebUI.Scripts.JavaScript.HJSBuilder
import WebUI.Scripts.JavaScript.HJSTypes
import WebUI.Scripts.JavaScript.HJSVars
hbConf = defaultHBConfig
instance PRL.Num HLangJS where
(HL x) + (HL y) = HL $ "(" ++ (buildHSL_L hbConf x) ++ " + " ++ (buildHSL_L hbConf y) ++ ")"
_ + _ = error "HScript Error! Could not math operation \'+\' from class Num for HLangJS."
(HL x) - (HL y) = HL $ "(" ++ (buildHSL_L hbConf x) ++ " - " ++ (buildHSL_L hbConf y) ++ ")"
_ - _ = error "HScript Error! Could not math operation \'-\' from class Num for HLangJS."
(HL x) * (HL y) = HL $ "(" ++ (buildHSL_L hbConf x) ++ " * " ++ (buildHSL_L hbConf y) ++ ")"
_ * _ = error "HScript Error! Could not math operation \'*\' from class Num for HLangJS."
negate x = HL $ "((-1)*" ++ (buildHSL_L hbConf x) ++ ")"
abs x = HL $ "Math.abs(" ++ (buildHSL_L hbConf x) ++ ")"
signum x = HL $ "Math.sign(" ++ (buildHSL_L hbConf x) ++ ")"
fromInteger x = HL $ x
instance PRL.Fractional HLangJS where
(HL x) / (HL y) = HL $ "(" ++ (buildHSL_L hbConf x) ++ " / " ++ (buildHSL_L hbConf y) ++ ")"
_ / _ = error "HScript Error! Could not math operation \'/\' from class Num for HLangJS."
fromRational x = HL $ buildHSL_L hbConf x