Module

Yoga.Format.Parse

Package
purescript-yoga-format
Repository
rowtype-yoga/purescript-yoga-format

#Lit Source

data Lit :: Symbol -> Segmentdata Lit t0

Instances

#Var Source

data Var :: Symbol -> Segmentdata Var t0

#Segment Source

data Segment

#SCons Source

data SCons :: Segment -> SList -> SListdata SCons t0 t1

Instances

#SList Source

data SList

#ParseTemplate Source

class ParseTemplate :: Symbol -> SList -> Constraintclass ParseTemplate sym segments | sym -> segments

Parse a template string into a list of segments

Instances

#ParseNormal Source

class ParseNormal :: Symbol -> Symbol -> Symbol -> SList -> Constraintclass ParseNormal head tail acc segments | head tail acc -> segments

Normal mode: accumulate literal characters

Instances

#ParseAfterDollar Source

class ParseAfterDollar :: Symbol -> Symbol -> Symbol -> SList -> Constraintclass ParseAfterDollar head tail litAcc segments | head tail litAcc -> segments

After $: dispatch { for braced, otherwise simple var

Instances

#ParseBracedVar Source

class ParseBracedVar :: Symbol -> Symbol -> Symbol -> Symbol -> SList -> Constraintclass ParseBracedVar head tail acc litAcc segments | head tail acc litAcc -> segments

Parse braced var ${name.path} — accumulate until }

Instances

#ParseSimpleVar Source

class ParseSimpleVar :: Symbol -> Symbol -> Symbol -> Symbol -> SList -> Constraintclass ParseSimpleVar head tail acc litAcc segments | head tail acc litAcc -> segments

Parse simple $varname — stop on non-identifier chars

Instances

#ParseSimpleVarDispatch Source

class ParseSimpleVarDispatch :: Boolean -> Symbol -> Symbol -> Symbol -> Symbol -> SList -> Constraintclass ParseSimpleVarDispatch isVar head tail acc litAcc segments | isVar head tail acc litAcc -> segments

Instances

#ContinueParse Source

class ContinueParse :: Symbol -> SList -> Constraintclass ContinueParse sym segments | sym -> segments

Continue parsing remaining input

Instances

#FlushLitCons Source

class FlushLitCons :: Symbol -> Segment -> SList -> SList -> Constraintclass FlushLitCons litAcc seg rest result | litAcc seg rest -> result

If litAcc is non-empty, prepend Lit litAcc before seg :: rest Otherwise just produce SCons seg rest

Instances

#FlushLitTail Source

class FlushLitTail :: Symbol -> SList -> Constraintclass FlushLitTail acc segments | acc -> segments

Flush literal at tail position (end of template)

Instances