unison-syntax-0.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Unison.Syntax.Lexer.Unison

Synopsis

Documentation

data Token a Source #

Constructors

Token 

Fields

Instances

Instances details
Foldable Token Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

fold :: Monoid m => Token m -> m #

foldMap :: Monoid m => (a -> m) -> Token a -> m #

foldMap' :: Monoid m => (a -> m) -> Token a -> m #

foldr :: (a -> b -> b) -> b -> Token a -> b #

foldr' :: (a -> b -> b) -> b -> Token a -> b #

foldl :: (b -> a -> b) -> b -> Token a -> b #

foldl' :: (b -> a -> b) -> b -> Token a -> b #

foldr1 :: (a -> a -> a) -> Token a -> a #

foldl1 :: (a -> a -> a) -> Token a -> a #

toList :: Token a -> [a] #

null :: Token a -> Bool #

length :: Token a -> Int #

elem :: Eq a => a -> Token a -> Bool #

maximum :: Ord a => Token a -> a #

minimum :: Ord a => Token a -> a #

sum :: Num a => Token a -> a #

product :: Num a => Token a -> a #

Traversable Token Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

traverse :: Applicative f => (a -> f b) -> Token a -> f (Token b) #

sequenceA :: Applicative f => Token (f a) -> f (Token a) #

mapM :: Monad m => (a -> m b) -> Token a -> m (Token b) #

sequence :: Monad m => Token (m a) -> m (Token a) #

Applicative Token Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

pure :: a -> Token a #

(<*>) :: Token (a -> b) -> Token a -> Token b #

liftA2 :: (a -> b -> c) -> Token a -> Token b -> Token c #

(*>) :: Token a -> Token b -> Token b #

(<*) :: Token a -> Token b -> Token a #

Functor Token Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

fmap :: (a -> b) -> Token a -> Token b #

(<$) :: a -> Token b -> Token a #

Show a => Show (Token a) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

showsPrec :: Int -> Token a -> ShowS #

show :: Token a -> String #

showList :: [Token a] -> ShowS #

Eq a => Eq (Token a) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

(==) :: Token a -> Token a -> Bool #

(/=) :: Token a -> Token a -> Bool #

Ord a => Ord (Token a) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

compare :: Token a -> Token a -> Ordering #

(<) :: Token a -> Token a -> Bool #

(<=) :: Token a -> Token a -> Bool #

(>) :: Token a -> Token a -> Bool #

(>=) :: Token a -> Token a -> Bool #

max :: Token a -> Token a -> Token a #

min :: Token a -> Token a -> Token a #

ShowErrorComponent (Token Text) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

ShowErrorComponent (Token Err) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

VisualStream [Token Lexeme] Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

Annotated (Token a) Source # 
Instance details

Defined in Unison.Syntax.Lexer.Token

Methods

ann :: Token a -> Ann Source #

type Line = Int Source #

data Pos Source #

Constructors

Pos 

Fields

Instances

Instances details
Monoid Pos Source # 
Instance details

Defined in Unison.Lexer.Pos

Methods

mempty :: Pos #

mappend :: Pos -> Pos -> Pos #

mconcat :: [Pos] -> Pos #

Semigroup Pos Source # 
Instance details

Defined in Unison.Lexer.Pos

Methods

(<>) :: Pos -> Pos -> Pos #

sconcat :: NonEmpty Pos -> Pos #

stimes :: Integral b => b -> Pos -> Pos #

Show Pos Source # 
Instance details

Defined in Unison.Lexer.Pos

Methods

showsPrec :: Int -> Pos -> ShowS #

show :: Pos -> String #

showList :: [Pos] -> ShowS #

Eq Pos Source # 
Instance details

Defined in Unison.Lexer.Pos

Methods

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

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

Ord Pos Source # 
Instance details

Defined in Unison.Lexer.Pos

Methods

compare :: Pos -> Pos -> Ordering #

(<) :: Pos -> Pos -> Bool #

(<=) :: Pos -> Pos -> Bool #

(>) :: Pos -> Pos -> Bool #

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

max :: Pos -> Pos -> Pos #

min :: Pos -> Pos -> Pos #

data Lexeme Source #

Constructors

Open String

start of a block

Semi IsVirtual

separator between elements of a block

Close

end of a block

Reserved String

reserved tokens such as `{`, `(`, `type`, `of`, etc

Textual String

text literals, `"foo bar"`

Character Char

character literals, `?X`

WordyId (HashQualified Name)

a (non-infix) identifier. invariant: last segment is wordy

SymbolyId (HashQualified Name)

an infix identifier. invariant: last segment is symboly

Numeric String

numeric literals, left unparsed

Bytes Bytes

bytes literals

Hash ShortHash

hash literals

Err Err 
Doc (UntitledSection (Tree (Token (ReferenceType, HashQualified Name)) [Token Lexeme])) 

Instances

Instances details
Show Lexeme Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

Eq Lexeme Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

Methods

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

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

Ord Lexeme Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

VisualStream [Token Lexeme] Source # 
Instance details

Defined in Unison.Syntax.Lexer.Unison

preParse :: [Token Lexeme] -> BlockTree (Token Lexeme) Source #

This turns the lexeme stream into a tree, reordering some lexeme subsequences.

Lexers

Character classifiers

Error formatting