Hets - the Heterogeneous Tool Set

Copyright(c) Dominik Dietrich, DFKI Bremen 2010
LicenseGPLv2 or higher, see LICENSE.txt
Maintainerdominik.dietrich@dfki.de
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone

CSL.Parse_AS_Basic

Contents

Description

Parser for abstract syntax for CSL

Synopsis

Interface to the syntax class

Parser utils

addToPosition

Arguments

:: SourcePos

original position

-> SourcePos

relative position

-> SourcePos

new position

posInputParser :: a -> GenParser tok st (a, SourcePos, [tok], st)

runSubParser :: GenParser tok st a -> st -> SourceName -> GenParser tok st' (Either ParseError (st, a))

data OpVarState a

Constructors

OpVarState a (Set String) 

lexemeParser :: CharParser st a -> CharParser st a

parser for symbols followed by whitechars

Parser for Expressions

identifier :: CharParser st Token

parsing of identifiers. an identifier is a letter followed by letters, numbers, or _, but not a keyword

signednumberExp :: CharParser st EXPRESSION

parses a possibly signed number to an EXPRESSION

signednumber :: CharParser st (Either APInt String, Range)

parses a possibly signed number (both integers and floats)

keySignNumCompat :: CharParser st a -> CharParser st a

The version in Common.Lexer is not compatible with floating point numbers which may start with ".". This one does it. This version is still not compatible with -!

factor :: OperatorState st => CharParser st EXPRESSION

parse a product of basic expressions

expexp :: OperatorState st => CharParser st EXPRESSION

parse a sequence of exponentiations

expatom :: OperatorState st => CharParser st EXPRESSION

parse a basic expression

listexp :: OperatorState st => CharParser st EXPRESSION

parses a list expression

parser for extended parameter, e.g., [I=0,...]

parser for formulas

predFormula :: OperatorState st => CharParser st EXPRESSION

parser for predicates

aFormula :: OperatorState st => CharParser st EXPRESSION

parser for formulas

parenFormula :: OperatorState st => CharParser st EXPRESSION

parses a formula within brackets

impOrFormula :: OperatorState st => CharParser st EXPRESSION

parser for implications and ors (same precedence)

andFormula :: OperatorState st => CharParser st EXPRESSION

a parser for and sequence of and formulas

Parser for Commands

command :: CharParser (AnnoState st) CMD

parser for commands

parser spec entries

opItem :: CharParser st OP_ITEM

parser for operator declarations: example: operator a,b,c

varItems :: CharParser st [VAR_ITEM]

Parser for variable declarations: example: vars x,y in {1,2}; z in [-1,1]

varItem :: CharParser st VAR_ITEM

Parser for a variable declaration: example: vars x,y in {1,2}

epDecl :: CharParser st (Token, EPDomain)

Parser for extended parameter declarations: example: I in [1,2];

epNumValAss :: CharParser st (Token, APInt)

Parser for extended parameter default values and domain variable declarations: example: I = 1; n=2

basicSpec :: AParser st BASIC_SPEC

Toplevel parser for basic specs

parseBasicItems :: AParser st BASIC_ITEM

Parser for basic items

parseOpDecl :: AParser st BASIC_ITEM

parser for operator declarations

parseVarDecl :: AParser st BASIC_ITEM

parser for variable declarations

parseEPDefValOrDomDecl :: AParser st BASIC_ITEM

parser for extended parameter declarations, one of: default value for an extended parameter (I=2) a domain variable declaration (n=10)

parseEPDecl :: AParser st BASIC_ITEM

parser for extended parameter declarations

parseAxItems :: AParser st BASIC_ITEM

parser for Axiom_item

parser for symbol maps etc.

symb :: GenParser Char st SYMB

parsing a prop symbol

symbMap :: GenParser Char st SYMB_OR_MAP

parsing one symbol or a mapping of one to a second symbol

symbItems :: GenParser Char st SYMB_ITEMS

Parse a list of comma separated symbols.

symbs :: GenParser Char st ([SYMB], [Token])

parse a comma separated list of symbols

symbMapItems :: GenParser Char st SYMB_MAP_ITEMS

parse a list of symbol mappings

symbMaps :: GenParser Char st ([SYMB_OR_MAP], [Token])

parse a comma separated list of symbol mappings