Text.ParserCombinators.Parsec.Language

Copyright (c) Paolo Martini 2007
License BSD-style (see the LICENSE file)
Maintainer [email protected]
Stability provisional
Portability portable
Safe Haskell Safe
Language Haskell2010

Description

Parsec compatibility module

haskellDef :: LanguageDef st Source

The language definition for the Haskell language.

haskell :: TokenParser st Source

A lexer for the haskell language.

mondrianDef :: LanguageDef st Source

The language definition for the language Mondrian.

mondrian :: TokenParser st Source

A lexer for the mondrian language.

emptyDef :: LanguageDef st Source

This is the most minimal token definition. It is recommended to use this definition as the basis for other definitions. emptyDef has no reserved names or operators, is case sensitive and doesn't accept comments, identifiers or operators.

haskellStyle :: LanguageDef st Source

This is a minimal token definition for Haskell style languages. It defines the style of comments, valid identifiers and case sensitivity. It does not define any reserved words or operators.

javaStyle :: LanguageDef st Source

This is a minimal token definition for Java style languages. It defines the style of comments, valid identifiers and case sensitivity. It does not define any reserved words or operators.

type LanguageDef st = GenLanguageDef String st Identity Source

data GenLanguageDef s u m Source

The GenLanguageDef type is a record that contains all parameterizable features of the Text.Parsec.Token module. The module Text.Parsec.Language contains some default definitions.

Constructors

LanguageDef

Fields

  • commentStart :: String

    Describes the start of a block comment. Use the empty string if the language doesn't support block comments. For example "/*".

  • commentEnd :: String

    Describes the end of a block comment. Use the empty string if the language doesn't support block comments. For example "*/".

  • commentLine :: String

    Describes the start of a line comment. Use the empty string if the language doesn't support line comments. For example "//".

  • nestedComments :: Bool

    Set to True if the language supports nested block comments.

  • identStart :: ParsecT s u m Char

    This parser should accept any start characters of identifiers. For example letter <|> char '_'.

  • identLetter :: ParsecT s u m Char

    This parser should accept any legal tail characters of identifiers. For example alphaNum <|> char '_'.

  • opStart :: ParsecT s u m Char

    This parser should accept any start characters of operators. For example oneOf ":!#$%&*+./<=>?@\\^|-~"

  • opLetter :: ParsecT s u m Char

    This parser should accept any legal tail characters of operators. Note that this parser should even be defined if the language doesn't support user-defined operators, or otherwise the reservedOp parser won't work correctly.

  • reservedNames :: [String]

    The list of reserved identifiers.

  • reservedOpNames :: [String]

    The list of reserved operators.

  • caseSensitive :: Bool

    Set to True if the language is case sensitive.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/parsec-3.1.14.0/Text-ParserCombinators-Parsec-Language.html