haskell-src-exts-1.18.2: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer

Copyright | (c) The GHC Team, 1997-2000 (c) Niklas Broberg, 2004-2012
License | BSD-style (see the file LICENSE.txt)
Maintainer | Niklas Broberg, niklas.broberg@chalmers.se
Stability | stable
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Language.Haskell.Exts.Lexer

Description

Lexer for Haskell with extensions.

Synopsis

- lexTokenStream :: String -> ParseResult [Loc Token]
- lexTokenStreamWithMode :: ParseMode -> String -> ParseResult [Loc Token]
- data Token
  - = VarId String
  - | LabelVarId String
  - | QVarId (String, String)
  - | IDupVarId String
  - | ILinVarId String
  - | ConId String
  - | QConId (String, String)
  - | DVarId [String]
  - | VarSym String
  - | ConSym String
  - | QVarSym (String, String)
  - | QConSym (String, String)
  - | IntTok (Integer, String)
  - | FloatTok (Rational, String)
  - | Character (Char, String)
  - | StringTok (String, String)
  - | IntTokHash (Integer, String)
  - | WordTokHash (Integer, String)
  - | FloatTokHash (Rational, String)
  - | DoubleTokHash (Rational, String)
  - | CharacterHash (Char, String)
  - | StringHash (String, String)
  - | LeftParen
  - | RightParen
  - | LeftHashParen
  - | RightHashParen
  - | SemiColon
  - | LeftCurly
  - | RightCurly
  - | VRightCurly
  - | LeftSquare
  - | RightSquare
  - | ParArrayLeftSquare
  - | ParArrayRightSquare
  - | Comma
  - | Underscore
  - | BackQuote
  - | Dot
  - | DotDot
  - | Colon
  - | QuoteColon
  - | DoubleColon
  - | Equals
  - | Backslash
  - | Bar
  - | LeftArrow
  - | RightArrow
  - | At
  - | TApp
  - | Tilde
  - | DoubleArrow
  - | Minus
  - | Exclamation
  - | Star
  - | LeftArrowTail
  - | RightArrowTail
  - | LeftDblArrowTail
  - | RightDblArrowTail
  - | THExpQuote
  - | THPatQuote
  - | THDecQuote
  - | THTypQuote
  - | THCloseQuote
  - | THIdEscape String
  - | THParenEscape
  - | THVarQuote
  - | THTyQuote
  - | THQuasiQuote (String, String)
  - | RPGuardOpen
  - | RPGuardClose
  - | RPCAt
  - | XCodeTagOpen
  - | XCodeTagClose
  - | XStdTagOpen
  - | XStdTagClose
  - | XCloseTagOpen
  - | XEmptyTagClose
  - | XChildTagOpen
  - | XPCDATA String
  - | XRPatOpen
  - | XRPatClose
  - | PragmaEnd
  - | RULES
  - | INLINE Bool
  - | INLINE_CONLIKE
  - | SPECIALISE
  - | SPECIALISE_INLINE Bool
  - | SOURCE
  - | DEPRECATED
  - | WARNING
  - | SCC
  - | GENERATED
  - | CORE
  - | UNPACK
  - | NOUNPACK
  - | OPTIONS (Maybe String, String)
  - | LANGUAGE
  - | ANN
  - | MINIMAL
  - | NO_OVERLAP
  - | OVERLAP
  - | INCOHERENT
  - | KW_As
  - | KW_By
  - | KW_Case
  - | KW_Class
  - | KW_Data
  - | KW_Default
  - | KW_Deriving
  - | KW_Do
  - | KW_MDo
  - | KW_Else
  - | KW_Family
  - | KW_Forall
  - | KW_Group
  - | KW_Hiding
  - | KW_If
  - | KW_Import
  - | KW_In
  - | KW_Infix
  - | KW_InfixL
  - | KW_InfixR
  - | KW_Instance
  - | KW_Let
  - | KW_Module
  - | KW_NewType
  - | KW_Of
  - | KW_Proc
  - | KW_Rec
  - | KW_Role
  - | KW_Then
  - | KW_Type
  - | KW_Using
  - | KW_Where
  - | KW_Qualified
  - | KW_Pattern
  - | KW_Foreign
  - | KW_Export
  - | KW_Safe
  - | KW_Unsafe
  - | KW_Threadsafe
  - | KW_Interruptible
  - | KW_StdCall
  - | KW_CCall
  - | KW_CPlusPlus
  - | KW_DotNet
  - | KW_Jvm
  - | KW_Js
  - | KW_JavaScript
  - | KW_CApi
  - | EOF
- data Loc a = Loc {
  - loc :: SrcSpan
  - unLoc :: a
  }
- showToken :: Token -> String

# Documentation

lexTokenStream :: String -> ParseResult [Loc Token] #

Lex a string into a list of Haskell 2010 source tokens.

lexTokenStreamWithMode :: ParseMode -> String -> ParseResult [Loc Token] #

Lex a string into a list of Haskell source tokens, using an explicit mode.

data Token #

Constructors

VarId String |
LabelVarId String |
QVarId (String, String) |
IDupVarId String |
ILinVarId String |
ConId String |
QConId (String, String) |
DVarId [String] |
VarSym String |
ConSym String |
QVarSym (String, String) |
QConSym (String, String) |
IntTok (Integer, String) |
FloatTok (Rational, String) |
Character (Char, String) |
StringTok (String, String) |
IntTokHash (Integer, String) |
WordTokHash (Integer, String) |
FloatTokHash (Rational, String) |
DoubleTokHash (Rational, String) |
CharacterHash (Char, String) |
StringHash (String, String) |
LeftParen |
RightParen |
LeftHashParen |
RightHashParen |
SemiColon |
LeftCurly |
RightCurly |
VRightCurly |
LeftSquare |
RightSquare |
ParArrayLeftSquare |
ParArrayRightSquare |
Comma |
Underscore |
BackQuote |
Dot |
DotDot |
Colon |
QuoteColon |
DoubleColon |
Equals |
Backslash |
Bar |
LeftArrow |
RightArrow |
At |
TApp |
Tilde |
DoubleArrow |
Minus |
Exclamation |
Star |
LeftArrowTail |
RightArrowTail |
LeftDblArrowTail |
RightDblArrowTail |
THExpQuote |
THPatQuote |
THDecQuote |
THTypQuote |
THCloseQuote |
THIdEscape String | ]
THParenEscape |
THVarQuote |
THTyQuote |
THQuasiQuote (String, String) |
RPGuardOpen |
RPGuardClose |
RPCAt | )
XCodeTagOpen |
XCodeTagClose |
XStdTagOpen |
XStdTagClose |
XCloseTagOpen |
XEmptyTagClose |
XChildTagOpen |
XPCDATA String |
XRPatOpen |
XRPatClose |
PragmaEnd |
RULES |
INLINE Bool |
INLINE_CONLIKE |
SPECIALISE |
SPECIALISE_INLINE Bool |
SOURCE |
DEPRECATED |
WARNING |
SCC |
GENERATED |
CORE |
UNPACK |
NOUNPACK |
OPTIONS (Maybe String, String) |
LANGUAGE |
ANN |
MINIMAL |
NO_OVERLAP |
OVERLAP |
INCOHERENT |
KW_As |
KW_By |
KW_Case |
KW_Class |
KW_Data |
KW_Default |
KW_Deriving |
KW_Do |
KW_MDo |
KW_Else |
KW_Family |
KW_Forall |
KW_Group |
KW_Hiding |
KW_If |
KW_Import |
KW_In |
KW_Infix |
KW_InfixL |
KW_InfixR |
KW_Instance |
KW_Let |
KW_Module |
KW_NewType |
KW_Of |
KW_Proc |
KW_Rec |
KW_Role |
KW_Then |
KW_Type |
KW_Using |
KW_Where |
KW_Qualified |
KW_Pattern |
KW_Foreign |
KW_Export |
KW_Safe |
KW_Unsafe |
KW_Threadsafe |
KW_Interruptible |
KW_StdCall |
KW_CCall |
KW_CPlusPlus |
KW_DotNet |
KW_Jvm |
KW_Js |
KW_JavaScript |
KW_CApi |
EOF |

Instances

Eq Token # |
Methods (==) :: Token -> Token -> Bool # (/=) :: Token -> Token -> Bool #
Show Token # |
Methods showsPrec :: Int -> Token -> ShowS # show :: Token -> String # showList :: [Token] -> ShowS #

data Loc a #

An entity located in the source.

Constructors

Loc |
Fields loc :: SrcSpan unLoc :: a

Instances

Eq a => Eq (Loc a) # |
Methods (==) :: Loc a -> Loc a -> Bool # (/=) :: Loc a -> Loc a -> Bool #
Ord a => Ord (Loc a) # |
Methods compare :: Loc a -> Loc a -> Ordering # (<) :: Loc a -> Loc a -> Bool # (<=) :: Loc a -> Loc a -> Bool # (>) :: Loc a -> Loc a -> Bool # (>=) :: Loc a -> Loc a -> Bool # max :: Loc a -> Loc a -> Loc a # min :: Loc a -> Loc a -> Loc a #
Show a => Show (Loc a) # |
Methods showsPrec :: Int -> Loc a -> ShowS # show :: Loc a -> String # showList :: [Loc a] -> ShowS #

showToken :: Token -> String #