| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Drasil.Code.CodeExpr.Development
Description
Re-exporting modules
Synopsis
- data CodeExpr where
- Lit :: Literal -> CodeExpr
- AssocA :: AssocArithOper -> [CodeExpr] -> CodeExpr
- AssocB :: AssocBoolOper -> [CodeExpr] -> CodeExpr
- AssocC :: AssocConcatOper -> [CodeExpr] -> CodeExpr
- C :: UID -> CodeExpr
- FCall :: UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr
- New :: UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr
- Message :: UID -> UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr
- Field :: UID -> UID -> CodeExpr
- Case :: Completeness -> [(CodeExpr, CodeExpr)] -> CodeExpr
- Matrix :: [[CodeExpr]] -> CodeExpr
- Set :: Space -> [CodeExpr] -> CodeExpr
- Variable :: String -> CodeExpr -> CodeExpr
- UnaryOp :: UFunc -> CodeExpr -> CodeExpr
- UnaryOpB :: UFuncB -> CodeExpr -> CodeExpr
- UnaryOpVV :: UFuncVV -> CodeExpr -> CodeExpr
- UnaryOpVN :: UFuncVN -> CodeExpr -> CodeExpr
- ArithBinaryOp :: ArithBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- EqBinaryOp :: EqBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- LABinaryOp :: LABinOp -> CodeExpr -> CodeExpr -> CodeExpr
- OrdBinaryOp :: OrdBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- VVVBinaryOp :: VVVBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- VVNBinaryOp :: VVNBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- NVVBinaryOp :: NVVBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- ESSBinaryOp :: ESSBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- ESBBinaryOp :: ESBBinOp -> CodeExpr -> CodeExpr -> CodeExpr
- Operator :: AssocArithOper -> DiscreteDomainDesc CodeExpr CodeExpr -> CodeExpr -> CodeExpr
- RealI :: UID -> RealInterval CodeExpr CodeExpr -> CodeExpr
- data ArithBinOp
- data EqBinOp
- data LABinOp
- data OrdBinOp
- data VVVBinOp
- data VVNBinOp = Dot
- data NVVBinOp = Scale
- data ESSBinOp
- data ESBBinOp = SContains
- data AssocArithOper
- data AssocBoolOper
- data AssocConcatOper = SUnion
- data UFunc
- data UFuncB = Not
- data UFuncVV = NegV
- data UFuncVN
- class CodeExprC r where
- new :: (Callable f, HasUID f, CodeIdea f) => f -> [r] -> r
- newWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r
- msg :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c) => c -> f -> [r] -> r
- msgWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c, HasUID a, IsArgumentName a) => c -> f -> [r] -> [(a, r)] -> r
- field :: CodeVarChunk -> CodeVarChunk -> r
- applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r
- eDep :: CodeExpr -> [UID]
- eDep' :: CodeExpr -> [UID]
- eNamesRI :: RealInterval CodeExpr CodeExpr -> [UID]
- eNamesRI' :: RealInterval CodeExpr CodeExpr -> [UID]
- eprec :: CodeExpr -> Int
- precA :: AssocArithOper -> Int
- precB :: AssocBoolOper -> Int
- expr :: Expr -> CodeExpr
- realInterval :: RealInterval Expr Expr -> RealInterval CodeExpr CodeExpr
- constraint :: ConstraintE -> Constraint CodeExpr
- class CanGenCode e where
- toCodeExpr :: e -> CodeExpr
Documentation
Expression language where all terms also denote a term in GOOL (i.e. translation is total and meaning preserving).
Constructors
| Lit :: Literal -> CodeExpr | Brings literals into the expression language. |
| AssocA :: AssocArithOper -> [CodeExpr] -> CodeExpr | Takes an associative arithmetic operator with a list of expressions. |
| AssocB :: AssocBoolOper -> [CodeExpr] -> CodeExpr | Takes an associative boolean operator with a list of expressions. |
| AssocC :: AssocConcatOper -> [CodeExpr] -> CodeExpr | |
| C :: UID -> CodeExpr | C stands for Chunk, for referring to a chunk in an expression. Implicitly assumes that the chunk has a symbol. |
| FCall :: UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr | A function call accepts a list of parameters and a list of named parameters. For example
|
| New :: UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr | Actor creation given |
| Message :: UID -> UID -> [CodeExpr] -> [(UID, CodeExpr)] -> CodeExpr | Message an actor: |
| Field :: UID -> UID -> CodeExpr | Access a field of an actor: |
| Case :: Completeness -> [(CodeExpr, CodeExpr)] -> CodeExpr | For multi-case expressions, each pair represents one case. |
| Matrix :: [[CodeExpr]] -> CodeExpr | Represents a matrix of expressions. |
| Set :: Space -> [CodeExpr] -> CodeExpr | Represents a set of expressions |
| Variable :: String -> CodeExpr -> CodeExpr | used to refernce the (name + type = variable ) |
| UnaryOp :: UFunc -> CodeExpr -> CodeExpr | Unary operation for most functions (eg. sin, cos, log, etc.). |
| UnaryOpB :: UFuncB -> CodeExpr -> CodeExpr | Unary operation for |
| UnaryOpVV :: UFuncVV -> CodeExpr -> CodeExpr | Unary operation for |
| UnaryOpVN :: UFuncVN -> CodeExpr -> CodeExpr | Unary operation for |
| ArithBinaryOp :: ArithBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for arithmetic between expressions (fractional, power, and subtraction). |
| EqBinaryOp :: EqBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for equality between expressions. |
| LABinaryOp :: LABinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for indexing two expressions. |
| OrdBinaryOp :: OrdBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for ordering expressions (less than, greater than, etc.). |
| VVVBinaryOp :: VVVBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for |
| VVNBinaryOp :: VVNBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for |
| NVVBinaryOp :: NVVBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Binary operator for |
| ESSBinaryOp :: ESSBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Set operator for Set + Set -> Set |
| ESBBinaryOp :: ESBBinOp -> CodeExpr -> CodeExpr -> CodeExpr | Set operator for Element + Set -> Bool |
| Operator :: AssocArithOper -> DiscreteDomainDesc CodeExpr CodeExpr -> CodeExpr -> CodeExpr | Operators are generalized arithmetic operators over a |
| RealI :: UID -> RealInterval CodeExpr CodeExpr -> CodeExpr | The expression is an element of a space.
IsIn :: Expr -> Space -> Expr
| A different kind of |
Instances
data ArithBinOp Source #
Arithmetic operators (fractional, power, and subtraction).
Instances
| Eq ArithBinOp Source # | |
Defined in Language.Drasil.Expr.Lang | |
Equality operators (equal or not equal).
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, 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 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.Expr.Lang Methods (==) :: AssocArithOper -> AssocArithOper -> Bool # (/=) :: AssocArithOper -> AssocArithOper -> Bool # | |
data AssocBoolOper Source #
Associative boolean operators (and, or).
Instances
| Eq AssocBoolOper Source # | |
Defined in Language.Drasil.Expr.Lang Methods (==) :: AssocBoolOper -> AssocBoolOper -> Bool # (/=) :: AssocBoolOper -> AssocBoolOper -> Bool # | |
data AssocConcatOper Source #
Constructors
| SUnion |
Instances
| Eq AssocConcatOper Source # | |
Defined in Language.Drasil.Expr.Lang Methods (==) :: AssocConcatOper -> AssocConcatOper -> Bool # (/=) :: AssocConcatOper -> AssocConcatOper -> Bool # | |
Unary functions (abs, log, ln, sin, etc.).
Bool -> Bool operators.
Constructors
| Not |
Vector -> Vector operators.
Constructors
| NegV |
Vector -> Number operators.
class CodeExprC r where Source #
Methods
new :: (Callable f, HasUID f, CodeIdea f) => f -> [r] -> r Source #
Constructs a CodeExpr for actor creation (constructor call)
newWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r Source #
Constructs a CodeExpr for actor creation (constructor call) that uses named arguments
msg :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c) => c -> f -> [r] -> r Source #
Constructs a CodeExpr for actor messaging (method call)
msgWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c, HasUID a, IsArgumentName a) => c -> f -> [r] -> [(a, r)] -> r Source #
Constructs a CodeExpr for actor messaging (method call) that uses named arguments
field :: CodeVarChunk -> CodeVarChunk -> r Source #
Constructs a CodeExpr representing the field of an actor
applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [r] -> [(a, r)] -> r Source #
Instances
| CodeExprC CodeExpr Source # | |
Defined in Drasil.Code.CodeExpr.Class Methods new :: (Callable f, HasUID f, CodeIdea f) => f -> [CodeExpr] -> CodeExpr Source # newWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID a, IsArgumentName a) => f -> [CodeExpr] -> [(a, CodeExpr)] -> CodeExpr Source # msg :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c) => c -> f -> [CodeExpr] -> CodeExpr Source # msgWithNamedArgs :: (Callable f, HasUID f, CodeIdea f, HasUID c, HasSpace c, CodeIdea c, HasUID a, IsArgumentName a) => c -> f -> [CodeExpr] -> [(a, CodeExpr)] -> CodeExpr Source # field :: CodeVarChunk -> CodeVarChunk -> CodeExpr Source # applyWithNamedArgs :: (HasUID f, HasSymbol f, HasUID a, IsArgumentName a) => f -> [CodeExpr] -> [(a, CodeExpr)] -> CodeExpr Source # | |
eNamesRI :: RealInterval CodeExpr CodeExpr -> [UID] Source #
Generic traversal of everything that could come from an interval to names (similar to eNames).
eNamesRI' :: RealInterval CodeExpr CodeExpr -> [UID] Source #
Generic traversal of everything that could come from an interval to names without functions (similar to eNames').
precA :: AssocArithOper -> Int Source #
precA - precedence for arithmetic-related Binary-Associative (Commutative) operators.
precB :: AssocBoolOper -> Int Source #
precB - precedence for boolean-related Binary-Associative (Commutative) operators.
realInterval :: RealInterval Expr Expr -> RealInterval CodeExpr CodeExpr Source #
Convert RealInterval Expr Exprs into RealInterval CodeExpr CodeExprs.
constraint :: ConstraintE -> Constraint CodeExpr Source #
Convert constrained expressions (ConstraintE) into Constraint''CodeExprs.
class CanGenCode e where Source #
Methods
toCodeExpr :: e -> CodeExpr Source #
Instances
| CanGenCode Expr Source # | |
Defined in Drasil.Code.CodeExpr.Convert Methods toCodeExpr :: Expr -> CodeExpr Source # | |
| CanGenCode Literal Source # | |
Defined in Drasil.Code.CodeExpr.Convert Methods toCodeExpr :: Literal -> CodeExpr Source # | |