module Data.Kicad.SExpr.SExpr
( SExpr(..)
, Keyword(..)
, SExpressable(..)
)
where
data SExpr = AtomKey Keyword
| AtomStr String
| AtomDbl Double
| List [SExpr]
deriving (Show, Eq)
data Keyword = KeyZoneConnect
| KeyXyz
| KeyXy
| KeyWidth
| KeyThickness
| KeyThermalWidth
| KeyThermalGap
| KeyTedit
| KeyTags
| KeyStart
| KeySolderPasteMarginRatio
| KeySolderPasteMargin
| KeySolderMaskMargin
| KeySize
| KeyScale
| KeyRotate
| KeyRectDelta
| KeyPts
| KeyPad
| KeyOffset
| KeyModule
| KeyModel
| KeyLayers
| KeyLayer
| KeyFpText
| KeyFpPoly
| KeyFpLine
| KeyFpCircle
| KeyFpArc
| KeyFont
| KeyEnd
| KeyEffects
| KeyDrill
| KeyDescr
| KeyClearance
| KeyCenter
| KeyAutoplaceCost90
| KeyAutoplaceCost180
| KeyAttr
| KeyAt
| KeyAngle
deriving (Show, Eq, Enum, Bounded)
class SExpressable a where
toSExpr :: a -> SExpr