cryptol-3.0.0: Cryptol: The Language of Cryptography

Copyright | (c) 2013-2016 Galois Inc.
License | BSD3
Maintainer | cryptol@galois.com
Stability | provisional
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

Cryptol.Parser.Lexer

Description

At present Alex generates code with too many warnings.

Synopsis

- primLexer :: Config -> Text -> ([Located Token], Position)
- lexer :: Config -> Text -> ([Located Token], Position)
- data Layout
  - = Layout
  - | NoLayout
- data Token = Token {
  - tokenType :: !TokenT
  - tokenText :: !Text
  }
- data TokenT
  - = Num !Integer !Int !Int
  - | Frac !Rational !Int
  - | ChrLit !Char
  - | Ident ![Text] !Text
  - | StrLit !String
  - | Selector !SelectorType
  - | KW !TokenKW
  - | Op !TokenOp
  - | Sym !TokenSym
  - | Virt !TokenV
  - | White !TokenW
  - | Err !TokenErr
  - | EOF
- data TokenV
  - = VCurlyL
  - | VCurlyR
  - | VSemi
- data TokenKW
  - = KW_else
  - | KW_fin
  - | KW_if
  - | KW_private
  - | KW_include
  - | KW_inf
  - | KW_lg2
  - | KW_lengthFromThen
  - | KW_lengthFromThenTo
  - | KW_max
  - | KW_min
  - | KW_module
  - | KW_submodule
  - | KW_newtype
  - | KW_pragma
  - | KW_property
  - | KW_then
  - | KW_type
  - | KW_where
  - | KW_let
  - | KW_x
  - | KW_import
  - | KW_as
  - | KW_hiding
  - | KW_infixl
  - | KW_infixr
  - | KW_infix
  - | KW_primitive
  - | KW_parameter
  - | KW_constraint
  - | KW_interface
  - | KW_foreign
  - | KW_Prop
  - | KW_by
  - | KW_down
- data TokenErr
  - = UnterminatedComment
  - | UnterminatedString
  - | UnterminatedChar
  - | InvalidString
  - | InvalidChar
  - | LexicalError
  - | MalformedLiteral
  - | MalformedSelector
  - | InvalidIndentation TokenT
- data TokenSym
  - = Bar
  - | ArrL
  - | ArrR
  - | FatArrR
  - | Lambda
  - | EqDef
  - | Comma
  - | Semi
  - | Dot
  - | DotDot
  - | DotDotDot
  - | DotDotLt
  - | DotDotGt
  - | Colon
  - | BackTick
  - | ParenL
  - | ParenR
  - | BracketL
  - | BracketR
  - | CurlyL
  - | CurlyR
  - | TriL
  - | TriR
  - | Lt
  - | Gt
  - | Underscore
- data TokenW
  - = BlockComment
  - | LineComment
  - | Space
  - | DocStr
- data Located a = Located {
  - srcRange :: !Range
  - thing :: !a
  }
- data Config = Config {
  - cfgSource :: !FilePath
  - cfgStart :: !Position
  - cfgLayout :: !Layout
  - cfgPreProc :: PreProc
  - cfgAutoInclude :: [FilePath]
  - cfgModuleScope :: Bool
  }
- defaultConfig :: Config
- dbgLex :: FilePath -> IO ()

# 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

- tokenType :: !TokenT
- tokenText :: !Text

#### Instances

Instances details

Generic Token Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep Token :: Type -> Type Source # Methods from :: Token -> Rep Token x Source # to :: Rep Token x -> Token Source #
Show Token Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> Token -> ShowS Source # show :: Token -> String Source # showList :: [Token] -> ShowS Source #
PP Token Source # |
Instance details Defined in Cryptol.Parser.Token Methods ppPrec :: Int -> Token -> Doc Source #
NFData Token Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: Token -> () Source #
type Rep Token Source # |
Instance details Defined in Cryptol.Parser.Token type Rep Token = D1 ('MetaData "Token" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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
Frac !Rational !Int | value, base.
ChrLit !Char | character literal
Ident ![Text] !Text | (qualified) identifier
StrLit !String | string literal
Selector !SelectorType | .hello or .123
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

Instances details

Generic TokenT Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenT :: Type -> Type Source # Methods from :: TokenT -> Rep TokenT x Source # to :: Rep TokenT x -> TokenT Source #
Show TokenT Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenT -> ShowS Source # show :: TokenT -> String Source # showList :: [TokenT] -> ShowS Source #
NFData TokenT Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenT -> () Source #
Eq TokenT Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenT -> TokenT -> Bool Source # (/=) :: TokenT -> TokenT -> Bool Source #
type Rep TokenT Source # |

Instance details

Defined in Cryptol.Parser.Token

type Rep TokenT = D1 ('MetaData "TokenT" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" 'False) (((C1 ('MetaCons "Num" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Integer) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int))) :+: (C1 ('MetaCons "Frac" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Rational) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int)) :+: C1 ('MetaCons "ChrLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Char)))) :+: (C1 ('MetaCons "Ident" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text]) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: (C1 ('MetaCons "StrLit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String)) :+: C1 ('MetaCons "Selector" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SelectorType))))) :+: ((C1 ('MetaCons "KW" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenKW)) :+: (C1 ('MetaCons "Op" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenOp)) :+: C1 ('MetaCons "Sym" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenSym)))) :+: ((C1 ('MetaCons "Virt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenV)) :+: C1 ('MetaCons "White" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenW))) :+: (C1 ('MetaCons "Err" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TokenErr)) :+: C1 ('MetaCons "EOF" 'PrefixI 'False) (U1 :: Type -> Type)))))

data TokenV Source #

Virtual tokens, inserted by layout processing.

Constructors

VCurlyL |
VCurlyR |
VSemi |

#### Instances

Instances details

Generic TokenV Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenV :: Type -> Type Source # Methods from :: TokenV -> Rep TokenV x Source # to :: Rep TokenV x -> TokenV Source #
Show TokenV Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenV -> ShowS Source # show :: TokenV -> String Source # showList :: [TokenV] -> ShowS Source #
NFData TokenV Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenV -> () Source #
Eq TokenV Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenV -> TokenV -> Bool Source # (/=) :: TokenV -> TokenV -> Bool Source #
type Rep TokenV Source # |
Instance details Defined in Cryptol.Parser.Token type Rep TokenV = D1 ('MetaData "TokenV" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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 #

Constructors

KW_else |
KW_fin |
KW_if |
KW_private |
KW_include |
KW_inf |
KW_lg2 |
KW_lengthFromThen |
KW_lengthFromThenTo |
KW_max |
KW_min |
KW_module |
KW_submodule |
KW_newtype |
KW_pragma |
KW_property |
KW_then |
KW_type |
KW_where |
KW_let |
KW_x |
KW_import |
KW_as |
KW_hiding |
KW_infixl |
KW_infixr |
KW_infix |
KW_primitive |
KW_parameter |
KW_constraint |
KW_interface |
KW_foreign |
KW_Prop |
KW_by |
KW_down |

#### Instances

Instances details

Generic TokenKW Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenKW :: Type -> Type Source # Methods from :: TokenKW -> Rep TokenKW x Source # to :: Rep TokenKW x -> TokenKW Source #
Show TokenKW Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenKW -> ShowS Source # show :: TokenKW -> String Source # showList :: [TokenKW] -> ShowS Source #
NFData TokenKW Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenKW -> () Source #
Eq TokenKW Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenKW -> TokenKW -> Bool Source # (/=) :: TokenKW -> TokenKW -> Bool Source #
type Rep TokenKW Source # |

Instance details

Defined in Cryptol.Parser.Token

type Rep TokenKW = D1 ('MetaData "TokenKW" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" 'False) (((((C1 ('MetaCons "KW_else" '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_submodule" '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_interface" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "KW_foreign" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "KW_Prop" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "KW_by" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "KW_down" 'PrefixI 'False) (U1 :: Type -> Type)))))))

data TokenErr Source #

Constructors

UnterminatedComment |
UnterminatedString |
UnterminatedChar |
InvalidString |
InvalidChar |
LexicalError |
MalformedLiteral |
MalformedSelector |
InvalidIndentation TokenT |

#### Instances

Instances details

Generic TokenErr Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenErr :: Type -> Type Source # Methods from :: TokenErr -> Rep TokenErr x Source # to :: Rep TokenErr x -> TokenErr Source #
Show TokenErr Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenErr -> ShowS Source # show :: TokenErr -> String Source # showList :: [TokenErr] -> ShowS Source #
NFData TokenErr Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenErr -> () Source #
Eq TokenErr Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenErr -> TokenErr -> Bool Source # (/=) :: TokenErr -> TokenErr -> Bool Source #
type Rep TokenErr Source # |

Instance details

Defined in Cryptol.Parser.Token

type Rep TokenErr = D1 ('MetaData "TokenErr" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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)) :+: (C1 ('MetaCons "MalformedLiteral" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MalformedSelector" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InvalidIndentation" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TokenT))))))

data TokenSym Source #

Constructors

Bar |
ArrL |
ArrR |
FatArrR |
Lambda |
EqDef |
Comma |
Semi |
Dot |
DotDot |
DotDotDot |
DotDotLt |
DotDotGt |
Colon |
BackTick |
ParenL |
ParenR |
BracketL |
BracketR |
CurlyL |
CurlyR |
TriL |
TriR |
Lt |
Gt |
Underscore |

#### Instances

Instances details

Generic TokenSym Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenSym :: Type -> Type Source # Methods from :: TokenSym -> Rep TokenSym x Source # to :: Rep TokenSym x -> TokenSym Source #
Show TokenSym Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenSym -> ShowS Source # show :: TokenSym -> String Source # showList :: [TokenSym] -> ShowS Source #
NFData TokenSym Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenSym -> () Source #
Eq TokenSym Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenSym -> TokenSym -> Bool Source # (/=) :: TokenSym -> TokenSym -> Bool Source #
type Rep TokenSym Source # |

Instance details

Defined in Cryptol.Parser.Token

type Rep TokenSym = D1 ('MetaData "TokenSym" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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 "DotDotLt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DotDotGt" '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 "Lt" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Gt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Underscore" 'PrefixI 'False) (U1 :: Type -> Type))))))

data TokenW Source #

Constructors

BlockComment |
LineComment |
Space |
DocStr |

#### Instances

Instances details

Generic TokenW Source # |
Instance details Defined in Cryptol.Parser.Token Associated Types type Rep TokenW :: Type -> Type Source # Methods from :: TokenW -> Rep TokenW x Source # to :: Rep TokenW x -> TokenW Source #
Show TokenW Source # |
Instance details Defined in Cryptol.Parser.Token Methods showsPrec :: Int -> TokenW -> ShowS Source # show :: TokenW -> String Source # showList :: [TokenW] -> ShowS Source #
NFData TokenW Source # |
Instance details Defined in Cryptol.Parser.Token Methods rnf :: TokenW -> () Source #
Eq TokenW Source # |
Instance details Defined in Cryptol.Parser.Token Methods (==) :: TokenW -> TokenW -> Bool Source # (/=) :: TokenW -> TokenW -> Bool Source #
type Rep TokenW Source # |

Instance details

Defined in Cryptol.Parser.Token

type Rep TokenW = D1 ('MetaData "TokenW" "Cryptol.Parser.Token" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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

- srcRange :: !Range
- thing :: !a

#### Instances

Instances details

Foldable Located Source # |

Instance details

Defined in Cryptol.Parser.Position

Methods

fold :: Monoid m => Located m -> m Source #

foldMap :: Monoid m => (a -> m) -> Located a -> m Source #

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

foldr :: (a -> b -> b) -> b -> Located a -> b Source #

foldr' :: (a -> b -> b) -> b -> Located a -> b Source #

foldl :: (b -> a -> b) -> b -> Located a -> b Source #

foldl' :: (b -> a -> b) -> b -> Located a -> b Source #

foldr1 :: (a -> a -> a) -> Located a -> a Source #

foldl1 :: (a -> a -> a) -> Located a -> a Source #

toList :: Located a -> [a] Source #

null :: Located a -> Bool Source #

length :: Located a -> Int Source #

elem :: Eq a => a -> Located a -> Bool Source #

maximum :: Ord a => Located a -> a Source #

minimum :: Ord a => Located a -> a Source #

sum :: Num a => Located a -> a Source #

product :: Num a => Located a -> a Source #

Traversable Located Source # |
Instance details Defined in Cryptol.Parser.Position Methods traverse :: Applicative f => (a -> f b) -> Located a -> f (Located b) Source # sequenceA :: Applicative f => Located (f a) -> f (Located a) Source # mapM :: Monad m => (a -> m b) -> Located a -> m (Located b) Source # sequence :: Monad m => Located (m a) -> m (Located a) Source #
Functor Located Source # |
Instance details Defined in Cryptol.Parser.Position Methods fmap :: (a -> b) -> Located a -> Located b Source # (<$) :: a -> Located b -> Located a Source #
Generic (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Associated Types type Rep (Located a) :: Type -> Type Source # Methods from :: Located a -> Rep (Located a) x Source # to :: Rep (Located a) x -> Located a Source #
Show a => Show (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods showsPrec :: Int -> Located a -> ShowS Source # show :: Located a -> String Source # showList :: [Located a] -> ShowS Source #
TraverseNames a => TraverseNames (Located a) Source # |
Instance details Defined in Cryptol.IR.TraverseNames Methods traverseNamesIP :: (Applicative f, ?name :: Name -> f Name) => Located a -> f (Located a) Source #
NoPos (Located t) Source # |
Instance details Defined in Cryptol.Parser.AST Methods noPos :: Located t -> Located t Source #
AddLoc (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods addLoc :: Located a -> Range -> Located a Source # dropLoc :: Located a -> Located a Source #
HasLoc (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods getLoc :: Located a -> Maybe Range Source #
ModuleInstance a => ModuleInstance (Located a) Source # |
Instance details Defined in Cryptol.TypeCheck.ModuleInstance Methods moduleInstance :: Located a -> Located a Source #
ShowParseable a => ShowParseable (Located a) Source # |
Instance details Defined in Cryptol.TypeCheck.Parseable Methods showParseable :: Located a -> Doc Void Source #
PP a => PP (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods ppPrec :: Int -> Located a -> Doc Source #
PPName a => PPName (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods ppNameFixity :: Located a -> Maybe Fixity Source # ppPrefixName :: Located a -> Doc Source # ppInfixName :: Located a -> Doc Source #
NFData a => NFData (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods rnf :: Located a -> () Source #
Eq a => Eq (Located a) Source # |
Instance details Defined in Cryptol.Parser.Position Methods (==) :: Located a -> Located a -> Bool Source # (/=) :: Located a -> Located a -> Bool Source #
Ord a => Ord (Located a) Source # |

Instance details

Defined in Cryptol.Parser.Position

Methods

compare :: Located a -> Located a -> Ordering Source #

(<) :: Located a -> Located a -> Bool Source #

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

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

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

max :: Located a -> Located a -> Located a Source #

min :: Located a -> Located a -> Located a Source #

type Rep (Located a) Source # |

Instance details

Defined in Cryptol.Parser.Position

type Rep (Located a) = D1 ('MetaData "Located" "Cryptol.Parser.Position" "cryptol-3.0.0-DBVDUAjB1JeD0WzkHH4ckn" '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

- cfgSource :: !FilePath

  File that we are working on

- cfgStart :: !Position

  Starting position for the parser

- cfgLayout :: !Layout

  Settings for layout processing

- cfgPreProc :: PreProc

  Preprocessor settings

- cfgAutoInclude :: [FilePath]

  Implicit includes

- cfgModuleScope :: Bool

  When we do layout processing should we add a vCurly (i.e., are we parsing a list of things).

defaultConfig :: Config Source #

dbgLex :: FilePath -> IO () Source #