prednote-0.24.0.0

Safe HaskellNone

Prednote.Expressions

Description

Handles parsing of both infix and RPN Predbox expressions.

Synopsis

Documentation

data ExprDesc Source

Is this an infix or RPN expression?

Constructors

Infix 
RPN 

Instances

data Token a Source

A single type for both RPN tokens and infix tokens.

Instances

operand :: Pred a -> Token aSource

Creates Operands from Predbox.

opAnd :: Token aSource

The And operator

opOr :: Token aSource

The Or operator

opNot :: Token aSource

The Not operator

openParen :: Token aSource

Open parentheses

closeParen :: Token aSource

Close parentheses

parseExpression :: ExprDesc -> [Token a] -> Either Error (Pred a)Source

Parses expressions. Fails if the expression is nonsensical in some way (for example, unbalanced parentheses, parentheses in an RPN expression, or multiple stack values remaining.) Works by first changing infix expressions to RPN ones.