janus-0.1.0.0: Simple scripting language written in Haskell, project for Fuctional Programming Course at AGH UST

Safe HaskellSafe
LanguageHaskell2010

Language.Janus.AST

Documentation

newtype Program Source #

Constructors

Program [Stmt] 

newtype Ptr Source #

Constructors

Ptr Word 

Instances

Bounded Ptr Source # 

Methods

minBound :: Ptr #

maxBound :: Ptr #

Eq Ptr Source # 

Methods

(==) :: Ptr -> Ptr -> Bool #

(/=) :: Ptr -> Ptr -> Bool #

Data Ptr Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ptr -> c Ptr #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Ptr #

toConstr :: Ptr -> Constr #

dataTypeOf :: Ptr -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Ptr) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Ptr) #

gmapT :: (forall b. Data b => b -> b) -> Ptr -> Ptr #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ptr -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ptr -> r #

gmapQ :: (forall d. Data d => d -> u) -> Ptr -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Ptr -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ptr -> m Ptr #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr -> m Ptr #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ptr -> m Ptr #

Ord Ptr Source # 

Methods

compare :: Ptr -> Ptr -> Ordering #

(<) :: Ptr -> Ptr -> Bool #

(<=) :: Ptr -> Ptr -> Bool #

(>) :: Ptr -> Ptr -> Bool #

(>=) :: Ptr -> Ptr -> Bool #

max :: Ptr -> Ptr -> Ptr #

min :: Ptr -> Ptr -> Ptr #

Show Ptr Source # 

Methods

showsPrec :: Int -> Ptr -> ShowS #

show :: Ptr -> String #

showList :: [Ptr] -> ShowS #

Hashable Ptr Source # 

Methods

hashWithSalt :: Int -> Ptr -> Int #

hash :: Ptr -> Int #

RefEvaluable Ptr Source # 

data Ref Source #

Constructors

PtrRef Ptr 
IndexRef Ptr Val 

Instances

Eq Ref Source # 

Methods

(==) :: Ref -> Ref -> Bool #

(/=) :: Ref -> Ref -> Bool #

Ord Ref Source # 

Methods

compare :: Ref -> Ref -> Ordering #

(<) :: Ref -> Ref -> Bool #

(<=) :: Ref -> Ref -> Bool #

(>) :: Ref -> Ref -> Bool #

(>=) :: Ref -> Ref -> Bool #

max :: Ref -> Ref -> Ref #

min :: Ref -> Ref -> Ref #

Show Ref Source # 

Methods

showsPrec :: Int -> Ref -> ShowS #

show :: Ref -> String #

showList :: [Ref] -> ShowS #

RefEvaluable Ref Source # 

data Val Source #

Instances

Eq Val Source # 

Methods

(==) :: Val -> Val -> Bool #

(/=) :: Val -> Val -> Bool #

Ord Val Source # 

Methods

compare :: Val -> Val -> Ordering #

(<) :: Val -> Val -> Bool #

(<=) :: Val -> Val -> Bool #

(>) :: Val -> Val -> Bool #

(>=) :: Val -> Val -> Bool #

max :: Val -> Val -> Val #

min :: Val -> Val -> Val #

Show Val Source # 

Methods

showsPrec :: Int -> Val -> ShowS #

show :: Val -> String #

showList :: [Val] -> ShowS #

FromVal Val Source # 
ToVal Val Source # 

Methods

toVal :: Val -> Val Source #

Callable Val Source # 

Methods

call :: Val -> [Val] -> InterpM Val Source #

Evaluable Val Source # 

Methods

eval :: Val -> InterpM Val Source #

class ToVal a where Source #

Minimal complete definition

toVal

Methods

toVal :: a -> Val Source #

Instances

toVal :: ToVal a => a -> Val Source #

toValI :: Integral a => a -> Val Source #

fromVal :: FromVal a => Val -> a Source #

toLiteral :: ToVal a => a -> Expr Source #

newtype Block Source #

Constructors

Block [Stmt] 

Instances

data Item Source #

Instances

Eq Item Source # 

Methods

(==) :: Item -> Item -> Bool #

(/=) :: Item -> Item -> Bool #

Ord Item Source # 

Methods

compare :: Item -> Item -> Ordering #

(<) :: Item -> Item -> Bool #

(<=) :: Item -> Item -> Bool #

(>) :: Item -> Item -> Bool #

(>=) :: Item -> Item -> Bool #

max :: Item -> Item -> Item #

min :: Item -> Item -> Item #

Show Item Source # 

Methods

showsPrec :: Int -> Item -> ShowS #

show :: Item -> String #

showList :: [Item] -> ShowS #

FromVal Item Source # 
ToVal Item Source # 

Methods

toVal :: Item -> Val Source #

Callable Item Source # 

Methods

call :: Item -> [Val] -> InterpM Val Source #