implicit-0.4.1.0: A math-inspired programmatic 2D & 3D CAD system.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Graphics.Implicit.ExtOpenScad.Definitions

Synopsis

Documentation

data ArgParser a Source #

Handles parsing arguments to built-in modules

Constructors

AP Symbol (Maybe OVal) Text (OVal -> ArgParser a)

For actual argument entries: AP (argument name) (default) (doc) (next Argparser...)

APTerminator a

For returns: APTerminator (return value)

APFail Text

For failure: APFail (error message)

APExample Text (ArgParser a)

An example, then next

APTest Text [TestInvariant] (ArgParser a)

A string to run as a test, then invariants for the results, then next

APBranch [ArgParser a]

A branch where there are a number of possibilities for the parser underneath

Instances

Instances details
Alternative ArgParser Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

empty :: ArgParser a #

(<|>) :: ArgParser a -> ArgParser a -> ArgParser a #

some :: ArgParser a -> ArgParser [a] #

many :: ArgParser a -> ArgParser [a] #

Applicative ArgParser Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

pure :: a -> ArgParser a #

(<*>) :: ArgParser (a -> b) -> ArgParser a -> ArgParser b #

liftA2 :: (a -> b -> c) -> ArgParser a -> ArgParser b -> ArgParser c #

(*>) :: ArgParser a -> ArgParser b -> ArgParser b #

(<*) :: ArgParser a -> ArgParser b -> ArgParser a #

Functor ArgParser Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

fmap :: (a -> b) -> ArgParser a -> ArgParser b #

(<$) :: a -> ArgParser b -> ArgParser a #

Monad ArgParser Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(>>=) :: ArgParser a -> (a -> ArgParser b) -> ArgParser b #

(>>) :: ArgParser a -> ArgParser b -> ArgParser b #

return :: a -> ArgParser a #

MonadPlus ArgParser Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

mzero :: ArgParser a #

mplus :: ArgParser a -> ArgParser a -> ArgParser a #

newtype Symbol Source #

Constructors

Symbol Text 

Instances

Instances details
Show Symbol Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Eq Symbol Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: Symbol -> Symbol -> Bool #

(/=) :: Symbol -> Symbol -> Bool #

Ord Symbol Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

data Pattern Source #

Constructors

Name Symbol 
ListP [Pattern] 
Wild 

Instances

Instances details
Show Pattern Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Eq Pattern Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: Pattern -> Pattern -> Bool #

(/=) :: Pattern -> Pattern -> Bool #

data Expr Source #

An expression.

Constructors

Var Symbol 
LitE OVal 
ListE [Expr] 
LamE [Pattern] Expr 
Expr :$ [Expr] 

Instances

Instances details
Show Expr Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

Eq Expr Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: Expr -> Expr -> Bool #

(/=) :: Expr -> Expr -> Bool #

data StatementI Source #

A statement, along with the line, column number, and file it is found at.

data Statement st Source #

Instances

Instances details
Show st => Show (Statement st) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

showsPrec :: Int -> Statement st -> ShowS #

show :: Statement st -> String #

showList :: [Statement st] -> ShowS #

Eq st => Eq (Statement st) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: Statement st -> Statement st -> Bool #

(/=) :: Statement st -> Statement st -> Bool #

data OVal Source #

Objects for our OpenSCAD-like language

Instances

Instances details
Show OVal Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

showsPrec :: Int -> OVal -> ShowS #

show :: OVal -> String #

showList :: [OVal] -> ShowS #

Eq OVal Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: OVal -> OVal -> Bool #

(/=) :: OVal -> OVal -> Bool #

data SourcePosition Source #

In order to not propagate Parsec or other modules around, create our own source position type for the AST.

data CompState Source #

The state of computation.

Constructors

CompState 

Fields

Instances

Instances details
Show CompState Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

newtype ImplicitCadM r w s m a Source #

Constructors

ImplicitCadM 

Fields

Instances

Instances details
(Monoid w, Monad m) => MonadReader r (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

ask :: ImplicitCadM r w s m r #

local :: (r -> r) -> ImplicitCadM r w s m a -> ImplicitCadM r w s m a #

reader :: (r -> a) -> ImplicitCadM r w s m a #

(Monoid w, Monad m) => MonadState s (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

get :: ImplicitCadM r w s m s #

put :: s -> ImplicitCadM r w s m () #

state :: (s -> (a, s)) -> ImplicitCadM r w s m a #

(Monoid w, Monad m) => MonadWriter w (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

writer :: (a, w) -> ImplicitCadM r w s m a #

tell :: w -> ImplicitCadM r w s m () #

listen :: ImplicitCadM r w s m a -> ImplicitCadM r w s m (a, w) #

pass :: ImplicitCadM r w s m (a, w -> w) -> ImplicitCadM r w s m a #

(Monoid w, MonadIO m) => MonadIO (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

liftIO :: IO a -> ImplicitCadM r w s m a #

(Monoid w, Monad m) => Applicative (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

pure :: a -> ImplicitCadM r w s m a #

(<*>) :: ImplicitCadM r w s m (a -> b) -> ImplicitCadM r w s m a -> ImplicitCadM r w s m b #

liftA2 :: (a -> b -> c) -> ImplicitCadM r w s m a -> ImplicitCadM r w s m b -> ImplicitCadM r w s m c #

(*>) :: ImplicitCadM r w s m a -> ImplicitCadM r w s m b -> ImplicitCadM r w s m b #

(<*) :: ImplicitCadM r w s m a -> ImplicitCadM r w s m b -> ImplicitCadM r w s m a #

Functor m => Functor (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

fmap :: (a -> b) -> ImplicitCadM r w s m a -> ImplicitCadM r w s m b #

(<$) :: a -> ImplicitCadM r w s m b -> ImplicitCadM r w s m a #

(Monoid w, Monad m) => Monad (ImplicitCadM r w s m) Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(>>=) :: ImplicitCadM r w s m a -> (a -> ImplicitCadM r w s m b) -> ImplicitCadM r w s m b #

(>>) :: ImplicitCadM r w s m a -> ImplicitCadM r w s m b -> ImplicitCadM r w s m b #

return :: a -> ImplicitCadM r w s m a #

newtype VarLookup Source #

Constructors

VarLookup (Map Symbol OVal) 

Instances

Instances details
Show VarLookup Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Eq VarLookup Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

data Message Source #

An individual message.

Instances

Instances details
Show Message Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Eq Message Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

(==) :: Message -> Message -> Bool #

(/=) :: Message -> Message -> Bool #

data MessageType Source #

The types of messages the execution engine can send back to the application.

data ScadOpts Source #

Options changing the behavior of the extended OpenScad engine.

Instances

Instances details
Show ScadOpts Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Default ScadOpts Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

Methods

def :: ScadOpts #

Eq ScadOpts Source # 
Instance details

Defined in Graphics.Implicit.ExtOpenScad.Definitions

lookupVarIn :: Text -> VarLookup -> Maybe OVal Source #

For programs using this API to perform variable lookups, after execution of an escad has completed.

runImplicitCadM :: Monad m => r -> s -> ImplicitCadM r w s m a -> m (a, w, s) Source #

type CanCompState' r w s m = (MonadReader r m, MonadWriter w m, MonadState s m, MonadIO m) Source #