| Copyright | Satoshi Egi |
|---|---|
| License | MIT |
| Safe Haskell | Safe |
| Language | Haskell98 |
Language.Egison.AST
Description
This module defines the syntax of Egison.
Documentation
data EgisonTopExpr Source #
Constructors
| Define Var EgisonExpr | |
| Redefine Var EgisonExpr | |
| Test EgisonExpr | |
| Execute EgisonExpr | |
| LoadFile String | |
| Load String |
Instances
| Eq EgisonTopExpr Source # | |
Defined in Language.Egison.AST Methods (==) :: EgisonTopExpr -> EgisonTopExpr -> Bool # (/=) :: EgisonTopExpr -> EgisonTopExpr -> Bool # | |
| Show EgisonTopExpr Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> EgisonTopExpr -> ShowS # show :: EgisonTopExpr -> String # showList :: [EgisonTopExpr] -> ShowS # | |
| Pretty EgisonTopExpr Source # | |
Defined in Language.Egison.Pretty | |
data EgisonExpr Source #
Constructors
Instances
| Eq EgisonExpr Source # | |
Defined in Language.Egison.AST | |
| Show EgisonExpr Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> EgisonExpr -> ShowS # show :: EgisonExpr -> String # showList :: [EgisonExpr] -> ShowS # | |
| Pretty MatchClause Source # | |
Defined in Language.Egison.Pretty | |
| Pretty BindingExpr Source # | |
Defined in Language.Egison.Pretty | |
| Pretty EgisonExpr Source # | |
Defined in Language.Egison.Pretty | |
| PrettyS EgisonExpr Source # | |
Defined in Language.Egison.Pretty Methods prettyS :: EgisonExpr -> String Source # | |
| Show (Index EgisonExpr) Source # | |
Defined in Language.Egison.AST | |
| PrettyS (Index EgisonExpr) Source # | |
Defined in Language.Egison.Pretty | |
data EgisonPattern Source #
Constructors
Instances
| Eq EgisonPattern Source # | |
Defined in Language.Egison.AST Methods (==) :: EgisonPattern -> EgisonPattern -> Bool # (/=) :: EgisonPattern -> EgisonPattern -> Bool # | |
| Show EgisonPattern Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> EgisonPattern -> ShowS # show :: EgisonPattern -> String # showList :: [EgisonPattern] -> ShowS # | |
| Pretty EgisonPattern Source # | |
Defined in Language.Egison.Pretty | |
| Pretty MatchClause Source # | |
Defined in Language.Egison.Pretty | |
| PrettyS EgisonPattern Source # | |
Defined in Language.Egison.Pretty Methods prettyS :: EgisonPattern -> String Source # | |
Instances
| Eq Var Source # | |
| Show Var Source # | |
| Generic Var Source # | |
| Hashable Var Source # | |
Defined in Language.Egison.AST | |
| Pretty BindingExpr Source # | |
Defined in Language.Egison.Pretty | |
| Pretty Var Source # | |
Defined in Language.Egison.Pretty | |
| PrettyS Var Source # | |
| type Rep Var Source # | |
Defined in Language.Egison.AST type Rep Var = D1 (MetaData "Var" "Language.Egison.AST" "egison-3.10.1-1CoeIFISJriC1SnHBnyqXP" False) (C1 (MetaCons "Var" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [String]) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Index ()]))) | |
Constructors
| Subscript a | |
| Superscript a | |
| SupSubscript a | |
| MultiSubscript a a | |
| MultiSuperscript a a | |
| DFscript Integer Integer | |
| Userscript a | |
| DotSubscript a | |
| DotSupscript a |
Instances
Constructors
| ElementExpr EgisonExpr | |
| SubCollectionExpr EgisonExpr |
type BindingExpr = ([Var], EgisonExpr) Source #
type MatchClause = (EgisonPattern, EgisonExpr) Source #
type PatternDef = (PrimitivePatPattern, EgisonExpr, [(PrimitiveDataPattern, EgisonExpr)]) Source #
Constructors
| LoopRange EgisonExpr EgisonExpr EgisonPattern |
data PrimitivePatPattern Source #
Constructors
| PPWildCard | |
| PPPatVar | |
| PPValuePat String | |
| PPInductivePat String [PrimitivePatPattern] | |
| PPTuplePat [PrimitivePatPattern] |
Instances
| Eq PrimitivePatPattern Source # | |
Defined in Language.Egison.AST Methods (==) :: PrimitivePatPattern -> PrimitivePatPattern -> Bool # (/=) :: PrimitivePatPattern -> PrimitivePatPattern -> Bool # | |
| Show PrimitivePatPattern Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> PrimitivePatPattern -> ShowS # show :: PrimitivePatPattern -> String # showList :: [PrimitivePatPattern] -> ShowS # | |
data PrimitiveDataPattern Source #
Constructors
Instances
| Eq PrimitiveDataPattern Source # | |
Defined in Language.Egison.AST Methods (==) :: PrimitiveDataPattern -> PrimitiveDataPattern -> Bool # (/=) :: PrimitiveDataPattern -> PrimitiveDataPattern -> Bool # | |
| Show PrimitiveDataPattern Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> PrimitiveDataPattern -> ShowS # show :: PrimitiveDataPattern -> String # showList :: [PrimitiveDataPattern] -> ShowS # | |
data EgisonBinOp Source #
Constructors
| EgisonBinOp | |
Instances
| Eq EgisonBinOp Source # | |
Defined in Language.Egison.AST | |
| Ord EgisonBinOp Source # | |
Defined in Language.Egison.AST Methods compare :: EgisonBinOp -> EgisonBinOp -> Ordering # (<) :: EgisonBinOp -> EgisonBinOp -> Bool # (<=) :: EgisonBinOp -> EgisonBinOp -> Bool # (>) :: EgisonBinOp -> EgisonBinOp -> Bool # (>=) :: EgisonBinOp -> EgisonBinOp -> Bool # max :: EgisonBinOp -> EgisonBinOp -> EgisonBinOp # min :: EgisonBinOp -> EgisonBinOp -> EgisonBinOp # | |
| Show EgisonBinOp Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> EgisonBinOp -> ShowS # show :: EgisonBinOp -> String # showList :: [EgisonBinOp] -> ShowS # | |
| PrettyS EgisonBinOp Source # | |
Defined in Language.Egison.Pretty Methods prettyS :: EgisonBinOp -> String Source # | |
data BinOpAssoc Source #
Constructors
| LeftAssoc | |
| RightAssoc | |
| NonAssoc |
Instances
| Eq BinOpAssoc Source # | |
Defined in Language.Egison.AST | |
| Ord BinOpAssoc Source # | |
Defined in Language.Egison.AST Methods compare :: BinOpAssoc -> BinOpAssoc -> Ordering # (<) :: BinOpAssoc -> BinOpAssoc -> Bool # (<=) :: BinOpAssoc -> BinOpAssoc -> Bool # (>) :: BinOpAssoc -> BinOpAssoc -> Bool # (>=) :: BinOpAssoc -> BinOpAssoc -> Bool # max :: BinOpAssoc -> BinOpAssoc -> BinOpAssoc # min :: BinOpAssoc -> BinOpAssoc -> BinOpAssoc # | |
| Show BinOpAssoc Source # | |
Defined in Language.Egison.AST Methods showsPrec :: Int -> BinOpAssoc -> ShowS # show :: BinOpAssoc -> String # showList :: [BinOpAssoc] -> ShowS # | |
reservedBinops :: [EgisonBinOp] Source #
stringToVar :: String -> Var Source #
stringToVarExpr :: String -> EgisonExpr Source #