public
Description: Haskell implemented JavaScript interpreter
Homepage:
Clone URL: git://github.com/motemen/jusk.git
jusk / Operator.hs-boot
100644 41 lines (23 sloc) 1.219 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{-# OPTIONS_GHC -fglasgow-exts #-}
 
module Operator where
 
import DataTypes
 
data OperatorDef = Unary { opName :: String, opUnaryFunc :: (Value -> Evaluate Value) }
              | Binary { opName :: String, opBinaryFunc :: (Value -> Value -> Evaluate Value) }
 
operatorsTable :: [OperatorDef]
 
numericUnaryOp :: (Double -> Double) -> Value -> Evaluate Value
 
numericBinaryOp :: (Double -> Double -> Double) -> Value -> Value -> Evaluate Value
 
bitwiseBinaryOp :: (Int -> Int -> Int) -> Value -> Value -> Evaluate Value
 
(.+.) :: Value -> Value -> Evaluate Value
 
(.%.) :: Value -> Value -> Evaluate Value
 
(.~.) :: Value -> Evaluate Value
 
(.>>.) :: Value -> Value -> Evaluate Value
(.<<.) :: Value -> Value -> Evaluate Value
(.>>>.) :: Value -> Value -> Evaluate Value
 
(.==.) :: Value -> Value -> Evaluate Value
(.!=.) :: Value -> Value -> Evaluate Value
 
(.===.) :: Value -> Value -> Evaluate Value
(.!==.) :: Value -> Value -> Evaluate Value
 
instanceofOperator :: Value -> Value -> Evaluate Value
 
inOperator :: Value -> Value -> Evaluate Value
 
comparisonOp :: (forall a. (Ord a) => a -> a -> Bool) -> Value -> Value -> Evaluate Value
 
applyNumericOp :: (Double -> Double -> a) -> Number -> Number -> Maybe a