Module Curry.SpanInfo

Datatype and operations to handle SpanInfos.

Author
Kai-Oliver Prott
Version
October 2024

Exported Datatypes


data SpanInfo

Constructors:

  • SpanInfo :: Span -> [Span] -> SpanInfo Span for the whole entity and a list of minor sub-spans, e.g. keywords.
  • NoSpanInfo :: SpanInfo

Known instances:


data LayoutInfo

Constructors:

  • ExplicitLayout :: [Span] -> LayoutInfo
  • WhitespaceLayout :: LayoutInfo

Known instances:


Exported Functions


fromSpanInfoList :: [SpanInfo] -> SpanInfo  Deterministic 


fromSrcSpan :: Span -> SpanInfo  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

fromSrcSpanBoth :: Span -> SpanInfo  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

getSrcSpan :: HasSpanInfo a => a -> Span  Deterministic 


setSrcSpan :: HasSpanInfo a => Span -> a -> a  Deterministic 


fromSrcInfoPoints :: [Span] -> SpanInfo  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

getSrcInfoPoints :: HasSpanInfo a => a -> [Span]  Deterministic 


setSrcInfoPoints :: HasSpanInfo a => [Span] -> a -> a  Deterministic 


getStartPosition :: HasSpanInfo a => a -> Position  Deterministic 


getEndPosition :: HasSpanInfo a => a -> Position  Deterministic 


getSrcSpanEnd :: HasSpanInfo a => a -> Position  Deterministic 


setStartPosition :: HasSpanInfo a => Position -> a -> a  Deterministic 


setEndPosition :: HasSpanInfo a => Position -> a -> a  Deterministic 


spanInfo2Pos :: HasSpanInfo a => a -> Position  Deterministic 


Exported Classes


class HasSpanInfo a

A class for easy access to SpanInfos

Methods:

getSpanInfo :: a -> SpanInfo  

setSpanInfo :: SpanInfo -> a -> a  

updateEndPos :: a -> a