symantic-cli-0.0.0.20180410: Library for Command Line Interface (CLI)

Safe HaskellSafe
LanguageHaskell2010

Language.Symantic.CLI.Fixity

Contents

Synopsis

Type Fixity

data Fixity Source #

Constructors

Fixity1 Unifix 
Fixity2 Infix 
Instances
Eq Fixity Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

(==) :: Fixity -> Fixity -> Bool #

(/=) :: Fixity -> Fixity -> Bool #

Show Fixity Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

PrecedenceOf Fixity Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Type Unifix

data Unifix Source #

Constructors

Prefix 
Postfix 
Instances
Eq Unifix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

(==) :: Unifix -> Unifix -> Bool #

(/=) :: Unifix -> Unifix -> Bool #

Show Unifix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

PrecedenceOf Unifix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Type Infix

data Infix Source #

Instances
Eq Infix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

(==) :: Infix -> Infix -> Bool #

(/=) :: Infix -> Infix -> Bool #

Show Infix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

showsPrec :: Int -> Infix -> ShowS #

show :: Infix -> String #

showList :: [Infix] -> ShowS #

PrecedenceOf Infix Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

needsParenInfix :: (Infix, Side) -> Infix -> Bool Source #

Given Precedence and Associativity of its parent operator, and the operand Side it is in, return whether an Infix operator needs to be enclosed by parenthesis.

Type Precedence

Class PrecedenceOf

class PrecedenceOf a where Source #

Minimal complete definition

precedence

Methods

precedence :: a -> Precedence Source #

Type Associativity

data Associativity Source #

Constructors

AssocL

Associate to the left: a ¹ b ² c == (a ¹ b) ² c

AssocR

Associate to the right: a ¹ b ² c == a ¹ (b ² c)

AssocB Side

Associate to both sides, but to Side when reading.

Type Side

data Side Source #

Constructors

SideL

Left

SideR

Right

Instances
Eq Side Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

(==) :: Side -> Side -> Bool #

(/=) :: Side -> Side -> Bool #

Show Side Source # 
Instance details

Defined in Language.Symantic.CLI.Fixity

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #