implicit-0.2.0: Math-inspired programmatic 2&3D CAD: CSG, bevels, and shells; gcode export..

Safe HaskellSafe
LanguageHaskell98

Graphics.Implicit.ExtOpenScad.Definitions

Synopsis

Documentation

data ArgParser a Source #

Handles parsing arguments to modules

Constructors

AP String (Maybe OVal) String (OVal -> ArgParser a)

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

APTerminator a

For returns: ArgParserTerminator (return value)

APFailIf Bool String (ArgParser a)

For failure: ArgParserFailIf (test) (error message) (child for if true)

APExample String (ArgParser a) 
APTest String [TestInvariant] (ArgParser a) 
APBranch [ArgParser a] 

Instances

data Pattern Source #

Constructors

Name Symbol 
ListP [Pattern] 
Wild 

data Expr Source #

Constructors

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

Instances

Eq Expr Source # 

Methods

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

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

Show Expr Source # 

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

data Statement st Source #

Instances

Eq st => Eq (Statement st) Source # 

Methods

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

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

Show st => Show (Statement st) Source # 

Methods

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

show :: Statement st -> String #

showList :: [Statement st] -> ShowS #

data OVal Source #

Objects for our OpenSCAD-like language

Instances

Eq OVal Source # 

Methods

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

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

Show OVal Source # 

Methods

showsPrec :: Int -> OVal -> ShowS #

show :: OVal -> String #

showList :: [OVal] -> ShowS #

type FStack = [OVal] Source #