The Language type that is the core of GroteTrap.
- data Language a = Language {}
- data Operator a
- data Fixity1
- data Fixity2
- isUnary :: Operator a -> Bool
- isBinary :: Operator a -> Bool
- isNary :: Operator a -> Bool
- findOperator :: Monad m => String -> [Operator a] -> m (Operator a)
- data Function a = Function {}
- findFunction :: Monad m => String -> [Function a] -> m (Function a)
- function1 :: (a -> a) -> String -> Function a
- function2 :: (a -> a -> a) -> String -> Function a
Language
Language connects the syntax of identifiers, numbers, operators and functions with their semantics. GroteTrap is able to derive a parser and evaluator from a Language, as well as convert between source text selections and tree selections.
Operators
Representation of an operator.
Fixity for unary operators.
Fixity for infix binary operators.
findOperator :: Monad m => String -> [Operator a] -> m (Operator a)Source
Yields the specified operator in a monad. Fails when there are no operators with the name, or where there are several operators with the name.
Functions
Representation of a function.