Module

PureScript.CST.Types

Package
purescript-language-cst-parser
Repository
natefaubion/purescript-language-cst-parser

#SourcePos Source

type SourcePos = { column :: Int, line :: Int }

#SourceRange Source

type SourceRange = { end :: SourcePos, start :: SourcePos }

#Comment Source

data Comment l

Constructors

#LineFeed Source

data LineFeed

Constructors

#SourceStyle Source

data SourceStyle

Constructors

Instances

#SourceToken Source

type SourceToken = { leadingComments :: Array (Comment LineFeed), range :: SourceRange, trailingComments :: Array (Comment Void), value :: Token }

#Ident Source

newtype Ident

Constructors

Instances

#Proper Source

newtype Proper

Constructors

Instances

#Label Source

newtype Label

Constructors

Instances

#Operator Source

#Name Source

newtype Name a

Constructors

Instances

#QualifiedName Source

newtype QualifiedName a

Constructors

Instances

#Wrapped Source

newtype Wrapped a

Constructors

Instances

#Separated Source

newtype Separated a

Constructors

Instances

#Labeled Source

newtype Labeled a b

Constructors

Instances

#Delimited Source

#DelimitedNonEmpty Source

#OneOrDelimited Source

data OneOrDelimited a

Constructors

#Row Source

newtype Row e

Constructors

Instances

#Module Source

newtype Module e

Constructors

Instances

#ModuleHeader Source

newtype ModuleHeader e

Constructors

Instances

#ModuleBody Source

newtype ModuleBody e

Constructors

Instances

#Instance Source

newtype Instance e

Constructors

Instances

#ImportDecl Source

newtype ImportDecl e

Constructors

Instances

#DataHead Source

type DataHead e = { keyword :: SourceToken, name :: Name Proper, vars :: Array (TypeVarBinding e) }

#DataCtor Source

newtype DataCtor e

Constructors

Instances

#ClassHead Source

type ClassHead e = { fundeps :: Maybe (Tuple SourceToken (Separated ClassFundep)), keyword :: SourceToken, name :: Name Proper, super :: Maybe (Tuple (OneOrDelimited (Type e)) SourceToken), vars :: Array (TypeVarBinding e) }

#InstanceHead Source

type InstanceHead e = { className :: QualifiedName Proper, constraints :: Maybe (Tuple (OneOrDelimited (Type e)) SourceToken), keyword :: SourceToken, name :: Maybe (Tuple (Name Ident) SourceToken), types :: Array (Type e) }

#Fixity Source

data Fixity

Constructors

#FixityFields Source

type FixityFields = { keyword :: Tuple SourceToken Fixity, operator :: FixityOp, prec :: Tuple SourceToken Int }

#ValueBindingFields Source

type ValueBindingFields e = { binders :: Array (Binder e), guarded :: Guarded e, name :: Name Ident }

#GuardedExpr Source

newtype GuardedExpr e

Constructors

Instances

#PatternGuard Source

newtype PatternGuard e

Constructors

Instances

#RecordAccessor Source

type RecordAccessor e = { dot :: SourceToken, expr :: Expr e, path :: Separated (Name Label) }

#Lambda Source

type Lambda e = { arrow :: SourceToken, binders :: NonEmptyArray (Binder e), body :: Expr e, symbol :: SourceToken }

#IfThenElse Source

type IfThenElse e = { cond :: Expr e, else :: SourceToken, false :: Expr e, keyword :: SourceToken, then :: SourceToken, true :: Expr e }

#CaseOf Source

type CaseOf e = { branches :: NonEmptyArray (Tuple (Separated (Binder e)) (Guarded e)), head :: Separated (Expr e), keyword :: SourceToken, of :: SourceToken }

#LetIn Source

type LetIn e = { bindings :: NonEmptyArray (LetBinding e), body :: Expr e, in :: SourceToken, keyword :: SourceToken }

#Where Source

newtype Where e

Constructors

Instances

#DoBlock Source

type DoBlock e = { keyword :: SourceToken, statements :: NonEmptyArray (DoStatement e) }

#AdoBlock Source

type AdoBlock e = { in :: SourceToken, keyword :: SourceToken, result :: Expr e, statements :: Array (DoStatement e) }