symantic-cli-2.4.0.20190719: Symantics for parsing and documenting a CLI

Safe HaskellSafe
LanguageHaskell2010

Symantic.CLI.Fixity

Contents

Synopsis

Type Fixity

data Fixity Source #

Constructors

Fixity1 Unifix 
Fixity2 Infix 
Instances
Eq Fixity Source # 
Instance details

Defined in Symantic.CLI.Fixity

Methods

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

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

Show Fixity Source # 
Instance details

Defined in Symantic.CLI.Fixity

PrecedenceOf Fixity Source # 
Instance details

Defined in Symantic.CLI.Fixity

Type Unifix

data Unifix Source #

Constructors

Prefix 
Postfix 
Instances
Eq Unifix Source # 
Instance details

Defined in Symantic.CLI.Fixity

Methods

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

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

Show Unifix Source # 
Instance details

Defined in Symantic.CLI.Fixity

PrecedenceOf Unifix Source # 
Instance details

Defined in Symantic.CLI.Fixity

Type Infix

data Infix Source #

Instances
Eq Infix Source # 
Instance details

Defined in Symantic.CLI.Fixity

Methods

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

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

Show Infix Source # 
Instance details

Defined in Symantic.CLI.Fixity

Methods

showsPrec :: Int -> Infix -> ShowS #

show :: Infix -> String #

showList :: [Infix] -> ShowS #

PrecedenceOf Infix Source # 
Instance details

Defined in 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 #

Methods

precedence :: a -> Precedence Source #

Instances
PrecedenceOf Infix Source # 
Instance details

Defined in Symantic.CLI.Fixity

PrecedenceOf Unifix Source # 
Instance details

Defined in Symantic.CLI.Fixity

PrecedenceOf Fixity Source # 
Instance details

Defined in Symantic.CLI.Fixity

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 Symantic.CLI.Fixity

Methods

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

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

Show Side Source # 
Instance details

Defined in Symantic.CLI.Fixity

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #