| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Axel.Parse.AST
Synopsis
- data Expression
- toAxel :: Expression -> String
- gensymCounter :: IORef Int
- gensym :: IO Expression
- class ToExpressionList a where
- toExpressionList :: a -> [Expression]
- programToTopLevelExpressions :: Expression -> [Expression]
- topLevelExpressionsToProgram :: [Expression] -> Expression
Documentation
data Expression #
Constructors
| LiteralChar Char | |
| LiteralInt Int | |
| LiteralString String | |
| SExpression [Expression] | |
| Symbol String |
Instances
| Eq Expression # | |
Defined in Axel.Parse.AST | |
| Show Expression # | |
Defined in Axel.Parse.AST Methods showsPrec :: Int -> Expression -> ShowS # show :: Expression -> String # showList :: [Expression] -> ShowS # | |
| ToExpressionList Expression # | Because we do not have a way to statically ensure an |
Defined in Axel.Parse.AST Methods toExpressionList :: Expression -> [Expression] # | |
| Recursive Expression # | |
Defined in Axel.Parse Methods bottomUpFmap :: (Expression -> Expression) -> Expression -> Expression # bottomUpTraverse :: Monad m => (Expression -> m Expression) -> Expression -> m Expression # topDownFmap :: (Expression -> Expression) -> Expression -> Expression # | |
| ToExpressionList [Expression] # | |
Defined in Axel.Parse.AST Methods toExpressionList :: [Expression] -> [Expression] # | |
toAxel :: Expression -> String #
gensymCounter :: IORef Int #
gensym :: IO Expression #
class ToExpressionList a where #
This allows splice-unquoting of both `[Expression]`s and SExpressions, without requiring special syntax for each.
Methods
toExpressionList :: a -> [Expression] #
Instances
| ToExpressionList Expression # | Because we do not have a way to statically ensure an |
Defined in Axel.Parse.AST Methods toExpressionList :: Expression -> [Expression] # | |
| ToExpressionList [Expression] # | |
Defined in Axel.Parse.AST Methods toExpressionList :: [Expression] -> [Expression] # | |