ddc-core-0.3.2.1: Disciplined Disciple Compiler core language and type checker.

Safe HaskellNone

DDC.Core.Parser

Contents

Description

Core language parser.

Synopsis

Documentation

type Parser n a = Parser (Tok n) aSource

A parser of core language tokens.

data Context Source

Configuration and information from the context. Used for context sensitive parsing.

contextOfProfile :: Profile n -> ContextSource

Slurp an initital Context from a Profile

Modules

pModule :: (Ord n, Pretty n) => Context -> Parser n (Module SourcePos n)Source

Parse a core module.

Expressions

pExp :: Ord n => Context -> Parser n (Exp SourcePos n)Source

Parse a core language expression.

pExpAtom :: Ord n => Context -> Parser n (Exp SourcePos n)Source

Parse a variable, constructor or parenthesised expression.

Types

pType :: Ord n => Context -> Parser n (Type n)Source

Parse a type.

pTypeApp :: Ord n => Context -> Parser n (Type n)Source

Parse a type application.

pTypeAtom :: Ord n => Context -> Parser n (Type n)Source

Parse a variable, constructor or parenthesised type.

Witnesses

pWitness :: Ord n => Context -> Parser n (Witness SourcePos n)Source

Parse a witness expression.

pWitnessApp :: Ord n => Context -> Parser n (Witness SourcePos n)Source

Parse a witness application.

pWitnessAtom :: Ord n => Context -> Parser n (Witness SourcePos n)Source

Parse a variable, constructor or parenthesised witness.

Constructors

pCon :: Parser n nSource

Parse a constructor name.

pLit :: Parser n nSource

Parse a literal

Variables

pBinder :: Ord n => Parser n (Binder n)Source

Parse a binder.

pIndex :: Parser n IntSource

Parse a deBruijn index

pVar :: Parser n nSource

Parse a variable.

pName :: Parser n nSource

Parse a constructor or variable name.

Raw Tokens

pTok :: TokAtom -> Parser n ()Source

Parse an atomic token.

pTokAs :: TokAtom -> a -> Parser n aSource

Parse an atomic token and return some value.