cryptol-2.8.0: Cryptol: The Language of Cryptography

Copyright(c) 2013-2016 Galois Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

Cryptol.Parser.Lexer

Description

At present Alex generates code with too many warnings.

Synopsis

Documentation

primLexer :: Config -> Text -> ([Located Token], Position) Source #

Returns the tokens and the last position of the input that we processed. The tokens include whte space tokens.

lexer :: Config -> Text -> ([Located Token], Position) Source #

Returns the tokens in the last position of the input that we processed. White space is removed, and layout processing is done as requested. This stream is fed to the parser.

data Layout Source #

Constructors

Layout 
NoLayout 

data Token Source #

Constructors

Token 

Fields

Instances
Show Token Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

showsPrec :: Int -> Token -> ShowS #

show :: Token -> String #

showList :: [Token] -> ShowS #

Generic Token Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep Token :: Type -> Type #

Methods

from :: Token -> Rep Token x #

to :: Rep Token x -> Token #

NFData Token Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: Token -> () #

PP Token Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

ppPrec :: Int -> Token -> Doc Source #

type Rep Token Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep Token = D1 (MetaData "Token" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) (C1 (MetaCons "Token" PrefixI True) (S1 (MetaSel (Just "tokenType") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 TokenT) :*: S1 (MetaSel (Just "tokenText") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text)))

data TokenT Source #

Constructors

Num !Integer !Int !Int

value, base, number of digits

ChrLit !Char

character literal

Ident ![Text] !Text

(qualified) identifier

StrLit !String

string literal

KW !TokenKW

keyword

Op !TokenOp

operator

Sym !TokenSym

symbol

Virt !TokenV

virtual token (for layout)

White !TokenW

white space token

Err !TokenErr

error token

EOF 
Instances
Eq TokenT Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

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

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

Show TokenT Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenT Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenT :: Type -> Type #

Methods

from :: TokenT -> Rep TokenT x #

to :: Rep TokenT x -> TokenT #

NFData TokenT Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenT -> () #

type Rep TokenT Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenT

data TokenV Source #

Virtual tokens, inserted by layout processing.

Constructors

VCurlyL 
VCurlyR 
VSemi 
Instances
Eq TokenV Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

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

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

Show TokenV Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenV Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenV :: Type -> Type #

Methods

from :: TokenV -> Rep TokenV x #

to :: Rep TokenV x -> TokenV #

NFData TokenV Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenV -> () #

type Rep TokenV Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenV = D1 (MetaData "TokenV" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) (C1 (MetaCons "VCurlyL" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "VCurlyR" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "VSemi" PrefixI False) (U1 :: Type -> Type)))

data TokenKW Source #

Instances
Eq TokenKW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

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

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

Show TokenKW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenKW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenKW :: Type -> Type #

Methods

from :: TokenKW -> Rep TokenKW x #

to :: Rep TokenKW x -> TokenKW #

NFData TokenKW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenKW -> () #

type Rep TokenKW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenKW = D1 (MetaData "TokenKW" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) ((((C1 (MetaCons "KW_else" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "KW_extern" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_fin" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "KW_if" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_private" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_include" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_inf" PrefixI False) (U1 :: Type -> Type)))) :+: (((C1 (MetaCons "KW_lg2" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_lengthFromThen" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_lengthFromThenTo" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_max" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "KW_min" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_module" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_newtype" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_pragma" PrefixI False) (U1 :: Type -> Type))))) :+: ((((C1 (MetaCons "KW_property" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_then" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_type" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_where" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "KW_let" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_x" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_import" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_as" PrefixI False) (U1 :: Type -> Type)))) :+: (((C1 (MetaCons "KW_hiding" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_infixl" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_infixr" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_infix" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "KW_primitive" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_parameter" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "KW_constraint" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "KW_Prop" PrefixI False) (U1 :: Type -> Type))))))

data TokenErr Source #

Instances
Eq TokenErr Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Show TokenErr Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenErr Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenErr :: Type -> Type #

Methods

from :: TokenErr -> Rep TokenErr x #

to :: Rep TokenErr x -> TokenErr #

NFData TokenErr Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenErr -> () #

type Rep TokenErr Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenErr = D1 (MetaData "TokenErr" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) ((C1 (MetaCons "UnterminatedComment" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "UnterminatedString" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "UnterminatedChar" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "InvalidString" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "InvalidChar" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "LexicalError" PrefixI False) (U1 :: Type -> Type))))

data TokenSym Source #

Instances
Eq TokenSym Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Show TokenSym Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenSym Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenSym :: Type -> Type #

Methods

from :: TokenSym -> Rep TokenSym x #

to :: Rep TokenSym x -> TokenSym #

NFData TokenSym Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenSym -> () #

type Rep TokenSym Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenSym = D1 (MetaData "TokenSym" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) ((((C1 (MetaCons "Bar" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ArrL" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "ArrR" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "FatArrR" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Lambda" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "EqDef" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Comma" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Semi" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "Dot" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "DotDot" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DotDotDot" PrefixI False) (U1 :: Type -> Type))))) :+: (((C1 (MetaCons "Colon" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "BackTick" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "ParenL" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "ParenR" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "BracketL" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "BracketR" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "CurlyL" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "CurlyR" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "TriL" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "TriR" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Underscore" PrefixI False) (U1 :: Type -> Type))))))

data TokenW Source #

Instances
Eq TokenW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

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

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

Show TokenW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Generic TokenW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Associated Types

type Rep TokenW :: Type -> Type #

Methods

from :: TokenW -> Rep TokenW x #

to :: Rep TokenW x -> TokenW #

NFData TokenW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

Methods

rnf :: TokenW -> () #

type Rep TokenW Source # 
Instance details

Defined in Cryptol.Parser.LexerUtils

type Rep TokenW = D1 (MetaData "TokenW" "Cryptol.Parser.LexerUtils" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) ((C1 (MetaCons "BlockComment" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "LineComment" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Space" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DocStr" PrefixI False) (U1 :: Type -> Type)))

data Located a Source #

Constructors

Located 

Fields

Instances
Functor Located Source # 
Instance details

Defined in Cryptol.Parser.Position

Methods

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

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

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

Defined in Cryptol.Parser.Position

Methods

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

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

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

Defined in Cryptol.Parser.Position

Methods

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

show :: Located a -> String #

showList :: [Located a] -> ShowS #

Generic (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

Associated Types

type Rep (Located a) :: Type -> Type #

Methods

from :: Located a -> Rep (Located a) x #

to :: Rep (Located a) x -> Located a #

NFData a => NFData (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

Methods

rnf :: Located a -> () #

PPName a => PPName (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

PP a => PP (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

Methods

ppPrec :: Int -> Located a -> Doc Source #

AddLoc (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

HasLoc (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

Methods

getLoc :: Located a -> Maybe Range Source #

NoPos (Located t) Source # 
Instance details

Defined in Cryptol.Parser.AST

Methods

noPos :: Located t -> Located t Source #

ShowParseable a => ShowParseable (Located a) Source # 
Instance details

Defined in Cryptol.TypeCheck.Parseable

type Rep (Located a) Source # 
Instance details

Defined in Cryptol.Parser.Position

type Rep (Located a) = D1 (MetaData "Located" "Cryptol.Parser.Position" "cryptol-2.8.0-Jl4xQKR0B4Q8VTNDfmeSo7" False) (C1 (MetaCons "Located" PrefixI True) (S1 (MetaSel (Just "srcRange") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Range) :*: S1 (MetaSel (Just "thing") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 a)))

data Config Source #

Constructors

Config 

Fields