symantic-base-0.5.0.20221211: Basic symantic combinators for Embedded Domain-Specific Languages (EDSL)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Symantic.Semantics.Viewer.Fixity

Synopsis

Type Fixity

data Fixity Source #

Constructors

Fixity1 Unifix 
Fixity2 Infix 

Instances

Instances details
Show Fixity Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Eq Fixity Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

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

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

PrecedenceOf Fixity Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Type Unifix

data Unifix Source #

Instances

Instances details
Show Unifix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Eq Unifix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

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

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

PrecedenceOf Unifix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Type Infix

data Infix Source #

Instances

Instances details
Show Infix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

showsPrec :: Int -> Infix -> ShowS #

show :: Infix -> String #

showList :: [Infix] -> ShowS #

Eq Infix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

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

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

PrecedenceOf Infix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

isPairNeeded :: (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 a Pair.

pairIfNeeded :: Semigroup s => IsString s => Pair -> (Infix, Side) -> Infix -> s -> s Source #

If isPairNeeded is True, enclose the given IsString by given Pair, otherwise returns the same IsString.

Type Precedence

Class PrecedenceOf

class PrecedenceOf a where Source #

Methods

precedence :: a -> Precedence Source #

Instances

Instances details
PrecedenceOf Fixity Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

PrecedenceOf Infix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

PrecedenceOf Unifix Source # 
Instance details

Defined in Symantic.Semantics.Viewer.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

Instances details
Show Side Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #

Eq Side Source # 
Instance details

Defined in Symantic.Semantics.Viewer.Fixity

Methods

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

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

Type Pair