Safe Haskell | Safe-Inferred |
---|
Language.Go.Parser.Tokens
Contents
Description
This module defines Go tokens and the parser type. It also defines various utility functions for the lexer and parser.
- type GoParser a = GenParser GoTokenPos GoParserState a
- data GoParserState = GoParserState {
- noComposite :: Bool
- parenDepth :: Int
- runGoParser :: GoParser a -> SourceName -> [GoTokenPos] -> Either ParseError a
- enterParen :: GoParser ()
- exitParen :: GoParser ()
- data GoToken
- = GoTokNone
- | GoTokComment Bool String
- | GoTokInt (Maybe String) Integer
- | GoTokReal (Maybe String) Float
- | GoTokImag (Maybe String) Float
- | GoTokChar (Maybe String) Char
- | GoTokStr (Maybe String) String
- | GoTokLParen
- | GoTokRParen
- | GoTokLBrace
- | GoTokRBrace
- | GoTokLBracket
- | GoTokRBracket
- | GoTokBreak
- | GoTokCase
- | GoTokChan
- | GoTokConst
- | GoTokContinue
- | GoTokDefault
- | GoTokDefer
- | GoTokElse
- | GoTokFallthrough
- | GoTokFor
- | GoTokFunc
- | GoTokGo
- | GoTokGoto
- | GoTokIf
- | GoTokImport
- | GoTokInterface
- | GoTokMap
- | GoTokPackage
- | GoTokRange
- | GoTokReturn
- | GoTokSelect
- | GoTokStruct
- | GoTokSwitch
- | GoTokType
- | GoTokVar
- | GoTokSemicolonAuto
- | GoTokSemicolon
- | GoTokColon
- | GoTokColonEq
- | GoTokEqual
- | GoTokComma
- | GoTokFullStop
- | GoTokEllipsis
- | GoTokLOR
- | GoTokLAND
- | GoTokEQ
- | GoTokNE
- | GoTokLT
- | GoTokLE
- | GoTokGT
- | GoTokGE
- | GoTokPlus
- | GoTokMinus
- | GoTokIOR
- | GoTokXOR
- | GoTokAsterisk
- | GoTokSolidus
- | GoTokPercent
- | GoTokSHL
- | GoTokSHR
- | GoTokAND
- | GoTokBUT
- | GoTokExclaim
- | GoTokArrow
- | GoTokDec
- | GoTokInc
- | GoTokId String
- | GoTokOp String
- | GoTokInvalid String
- data GoTokenPos = GoTokenPos !SourcePos !GoToken
- insertSemi :: [GoTokenPos] -> [GoTokenPos]
- stripComments :: [GoTokenPos] -> [GoTokenPos]
- token :: GoToken -> GoParser GoToken
- tokenFromComment :: Bool -> String -> GoToken
- tokenFromInt :: String -> GoToken
- tokenFromReal :: String -> GoToken
- tokenFromImag :: String -> GoToken
- tokenFromChar :: String -> GoToken
- tokenFromRawStr :: String -> GoToken
- tokenFromString :: String -> GoToken
- unquoteChar :: String -> Maybe Char
- unquoteString :: String -> Maybe String
- goTokLParen :: GoParser GoToken
- goTokRParen :: GoParser GoToken
- goTokLBrace :: GoParser GoToken
- goTokRBrace :: GoParser GoToken
- goTokLBracket :: GoParser GoToken
- goTokRBracket :: GoParser GoToken
- goTokSemicolon :: GoParser GoToken
- goTokColon :: GoParser GoToken
- goTokColonEq :: GoParser GoToken
- goTokEqual :: GoParser GoToken
- goTokComma :: GoParser GoToken
- goTokFullStop :: GoParser GoToken
- goTokEllipsis :: GoParser GoToken
- goTokAsterisk :: GoParser GoToken
- goTokArrow :: GoParser GoToken
- goAssignOp :: GoParser GoOp
- goTokBreak :: GoParser GoToken
- goTokCase :: GoParser GoToken
- goTokChan :: GoParser GoToken
- goTokConst :: GoParser GoToken
- goTokContinue :: GoParser GoToken
- goTokDefault :: GoParser GoToken
- goTokDefer :: GoParser GoToken
- goTokElse :: GoParser GoToken
- goTokFallthrough :: GoParser GoToken
- goTokFor :: GoParser GoToken
- goTokFunc :: GoParser GoToken
- goTokGo :: GoParser GoToken
- goTokGoto :: GoParser GoToken
- goTokIf :: GoParser GoToken
- goTokImport :: GoParser GoToken
- goTokInterface :: GoParser GoToken
- goTokMap :: GoParser GoToken
- goTokPackage :: GoParser GoToken
- goTokRange :: GoParser GoToken
- goTokReturn :: GoParser GoToken
- goTokSelect :: GoParser GoToken
- goTokStruct :: GoParser GoToken
- goTokSwitch :: GoParser GoToken
- goTokType :: GoParser GoToken
- goTokVar :: GoParser GoToken
Parser
type GoParser a = GenParser GoTokenPos GoParserState aSource
GoParser is the type used for all parsers
data GoParserState Source
Constructors
GoParserState | |
Fields
|
runGoParser :: GoParser a -> SourceName -> [GoTokenPos] -> Either ParseError aSource
enterParen :: GoParser ()Source
Tokens and utilities for lexer
GoToken encodes tokens
Constructors
data GoTokenPos Source
GoTokenPos encodes tokens and source positions
Constructors
GoTokenPos !SourcePos !GoToken |
Instances
insertSemi :: [GoTokenPos] -> [GoTokenPos]Source
insertSemi
performs semicolon insertion.
stripComments :: [GoTokenPos] -> [GoTokenPos]Source
tokenFromComment :: Bool -> String -> GoTokenSource
tokenFromInt :: String -> GoTokenSource
tokenFromReal :: String -> GoTokenSource
tokenFromImag :: String -> GoTokenSource
tokenFromChar :: String -> GoTokenSource
tokenFromChar c
unquotes the Go representation of a single
character literal, including the single quotes.
unquoteChar :: String -> Maybe CharSource
unquoteString :: String -> Maybe StringSource
Parsers for elementary punctuation
goAssignOp :: GoParser GoOpSource
Standard assign_op
See also: SS. 11.6. Assignments