Agda-2.5.4.2.20190111: A dependently typed functional programming language and proof assistant

Safe HaskellNone
LanguageHaskell2010

Agda.Syntax.Parser.Alex

Contents

Description

This module defines the things required by Alex and some other Alex related things.

Synopsis

Alex requirements

data AlexInput Source #

This is what the lexer manipulates.

Constructors

AlexInput 

Fields

alexInputPrevChar :: AlexInput -> Char Source #

Get the previously lexed character. Same as lexPrevChar. Alex needs this to be defined to handle "patterns with a left-context".

alexGetChar :: AlexInput -> Maybe (Char, AlexInput) Source #

Lex a character. No surprises.

This function is used by Alex 2.

alexGetByte :: AlexInput -> Maybe (Word8, AlexInput) Source #

A variant of alexGetChar.

This function is used by Alex 3.

Lex actions

type LexAction r = PreviousInput -> CurrentInput -> TokenLength -> Parser r Source #

In the lexer, regular expressions are associated with lex actions who's task it is to construct the tokens.

type LexPredicate = ([LexState], ParseFlags) -> PreviousInput -> TokenLength -> CurrentInput -> Bool Source #

Sometimes regular expressions aren't enough. Alex provides a way to do arbitrary computations to see if the input matches. This is done with a lex predicate.

Monad operations