Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Language.Drasil.ModelExpr.Lang
Description
The Drasil Modelling Expression language
Synopsis
- data ArithBinOp
- data EqBinOp
- data BoolBinOp
- data LABinOp
- data OrdBinOp
- data VVVBinOp
- data VVNBinOp = Dot
- data NVVBinOp = Scale
- data ESSBinOp
- data ESBBinOp = SContains
- data AssocConcatOper = SUnion
- data AssocArithOper
- data AssocBoolOper
- = And
- | Or
- | Equivalence
- data UFunc
- data UFuncB = Not
- data UFuncVV = NegV
- data UFuncVN
- data StatBinOp = Defines
- data SpaceBinOp = IsIn
- data DerivType
- data ModelExpr where
- Lit :: Literal -> ModelExpr
- Spc :: Space -> ModelExpr
- AssocA :: AssocArithOper -> [ModelExpr] -> ModelExpr
- AssocB :: AssocBoolOper -> [ModelExpr] -> ModelExpr
- AssocC :: AssocConcatOper -> [ModelExpr] -> ModelExpr
- Deriv :: Integer -> DerivType -> ModelExpr -> UID -> ModelExpr
- C :: UID -> ModelExpr
- FCall :: UID -> [ModelExpr] -> ModelExpr
- Case :: Completeness -> [(ModelExpr, ModelExpr)] -> ModelExpr
- Matrix :: [[ModelExpr]] -> ModelExpr
- Set :: Space -> [ModelExpr] -> ModelExpr
- Variable :: String -> ModelExpr -> ModelExpr
- UnaryOp :: UFunc -> ModelExpr -> ModelExpr
- UnaryOpB :: UFuncB -> ModelExpr -> ModelExpr
- UnaryOpVV :: UFuncVV -> ModelExpr -> ModelExpr
- UnaryOpVN :: UFuncVN -> ModelExpr -> ModelExpr
- ArithBinaryOp :: ArithBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- BoolBinaryOp :: BoolBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- EqBinaryOp :: EqBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- LABinaryOp :: LABinOp -> ModelExpr -> ModelExpr -> ModelExpr
- OrdBinaryOp :: OrdBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- SpaceBinaryOp :: SpaceBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- StatBinaryOp :: StatBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- VVVBinaryOp :: VVVBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- VVNBinaryOp :: VVNBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- NVVBinaryOp :: NVVBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- ESSBinaryOp :: ESSBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- ESBBinaryOp :: ESBBinOp -> ModelExpr -> ModelExpr -> ModelExpr
- Operator :: AssocArithOper -> DomainDesc t ModelExpr ModelExpr -> ModelExpr -> ModelExpr
- RealI :: UID -> RealInterval ModelExpr ModelExpr -> ModelExpr
- ForAll :: UID -> Space -> ModelExpr -> ModelExpr
- type Variable = String
Documentation
data ArithBinOp Source #
Arithmetic operators (fractional, power, and subtraction).
Instances
Eq ArithBinOp Source # | |
Defined in Language.Drasil.ModelExpr.Lang |
Equality operators (equal or not equal).
Conditional and Biconditional operators (Expressions can imply one another, or exist if and only if another expression exists).
Index operator.
Ordered binary operators (less than, greater than, less than or equal to, greater than or equal to).
Vector x Vector -> Vector
binary operations (cross product, vector addition, subtraction).
Vector x Vector -> Number
binary operations (dot product).
Constructors
Dot |
Number x Vector -> Vector
binary operations (scaling).
Constructors
Scale |
Element + Set -> Set
Element + Set -> Bool
Constructors
SContains |
data AssocConcatOper Source #
Constructors
SUnion |
Instances
Eq AssocConcatOper Source # | |
Defined in Language.Drasil.ModelExpr.Lang Methods (==) :: AssocConcatOper -> AssocConcatOper -> Bool # (/=) :: AssocConcatOper -> AssocConcatOper -> Bool # |
data AssocArithOper Source #
Associative operators (adding and multiplication). Also specifies whether it is for integers or for real numbers.
Instances
Eq AssocArithOper Source # | |
Defined in Language.Drasil.ModelExpr.Lang Methods (==) :: AssocArithOper -> AssocArithOper -> Bool # (/=) :: AssocArithOper -> AssocArithOper -> Bool # |
data AssocBoolOper Source #
Associative boolean operators (and, or).
Constructors
And | |
Or | |
Equivalence |
Instances
Show AssocBoolOper Source # | |
Defined in Language.Drasil.ModelExpr.Lang Methods showsPrec :: Int -> AssocBoolOper -> ShowS # show :: AssocBoolOper -> String # showList :: [AssocBoolOper] -> ShowS # | |
Eq AssocBoolOper Source # | |
Defined in Language.Drasil.ModelExpr.Lang Methods (==) :: AssocBoolOper -> AssocBoolOper -> Bool # (/=) :: AssocBoolOper -> AssocBoolOper -> Bool # |
Unary functions (abs, log, ln, sin, etc.).
Bool -> Bool
operators.
Constructors
Not |
Vector -> Vector
operators.
Constructors
NegV |
Vector -> Number
operators.
Statements involving 2 arguments.
Constructors
Defines |
data SpaceBinOp Source #
Value -> Space -> Bool
operators.
Constructors
IsIn |
Instances
Eq SpaceBinOp Source # | |
Defined in Language.Drasil.ModelExpr.Lang |
Determines the type of the derivative (either a partial derivative or a total derivative).
Expression language where all terms are supposed to have a meaning, but that meaning may not be that of a definite value. For example, specification expressions, especially with quantifiers, belong here.
Constructors
Lit :: Literal -> ModelExpr | Brings a literal into the expression language. |
Spc :: Space -> ModelExpr | Introduce Space values into the expression language. |
AssocA :: AssocArithOper -> [ModelExpr] -> ModelExpr | Takes an associative arithmetic operator with a list of expressions. |
AssocB :: AssocBoolOper -> [ModelExpr] -> ModelExpr | Takes an associative boolean operator with a list of expressions. |
AssocC :: AssocConcatOper -> [ModelExpr] -> ModelExpr | |
Deriv :: Integer -> DerivType -> ModelExpr -> UID -> ModelExpr | Derivative syntax is:
Type ( |
C :: UID -> ModelExpr | C stands for Chunk, for referring to a chunk in an expression. Implicitly assumes that the chunk has a symbol. |
FCall :: UID -> [ModelExpr] -> ModelExpr | Function applications. |
Case :: Completeness -> [(ModelExpr, ModelExpr)] -> ModelExpr | For multi-case expressions, each pair represents one case. |
Matrix :: [[ModelExpr]] -> ModelExpr | Represents a matrix of expressions. |
Set :: Space -> [ModelExpr] -> ModelExpr | Represents a set of expressions |
Variable :: String -> ModelExpr -> ModelExpr | used to refernce the (name + type = variable ) |
UnaryOp :: UFunc -> ModelExpr -> ModelExpr | Unary operation for most functions (eg. sin, cos, log, etc.). |
UnaryOpB :: UFuncB -> ModelExpr -> ModelExpr | Unary operation for |
UnaryOpVV :: UFuncVV -> ModelExpr -> ModelExpr | Unary operation for |
UnaryOpVN :: UFuncVN -> ModelExpr -> ModelExpr | Unary operation for |
ArithBinaryOp :: ArithBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for arithmetic between expressions (fractional, power, and subtraction). |
BoolBinaryOp :: BoolBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for boolean operators (implies, iff). |
EqBinaryOp :: EqBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for equality between expressions. |
LABinaryOp :: LABinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for indexing two expressions. |
OrdBinaryOp :: OrdBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for ordering expressions (less than, greater than, etc.). |
SpaceBinaryOp :: SpaceBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Space-related binary operations. |
StatBinaryOp :: StatBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Statement-related binary operations. |
VVVBinaryOp :: VVVBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for |
VVNBinaryOp :: VVNBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for |
NVVBinaryOp :: NVVBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Binary operator for |
ESSBinaryOp :: ESSBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Set operator for Element + Set -> Set |
ESBBinaryOp :: ESBBinOp -> ModelExpr -> ModelExpr -> ModelExpr | Set operator for Element + Set -> Bool |
Operator :: AssocArithOper -> DomainDesc t ModelExpr ModelExpr -> ModelExpr -> ModelExpr | Operators are generalized arithmetic operators over a |
RealI :: UID -> RealInterval ModelExpr ModelExpr -> ModelExpr | A different kind of |
ForAll :: UID -> Space -> ModelExpr -> ModelExpr | Universal quantification |