symantic-parser-0.1.0.20210201: Parser combinators statically optimized and staged via typed meta-programming
Safe HaskellNone
LanguageHaskell2010

Symantic.Parser.Machine.View

Synopsis

Type ViewMachine

newtype ViewMachine (showName :: Bool) inp (vs :: [Type]) (es :: Peano) a Source #

Constructors

ViewMachine 

Instances

Instances details
Readable tok (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

read :: forall inp (vs :: [Type]) (es :: Peano) a. tok ~ InputToken inp => [ErrorItem tok] -> TermInstr (tok -> Bool) -> ViewMachine sN inp (tok ': vs) ('Succ es) a -> ViewMachine sN inp vs ('Succ es) a Source #

ShowLetName sN Name => Joinable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

defJoin :: forall v inp (vs :: [Type]) (es :: Peano) a. LetName v -> ViewMachine sN inp (v ': vs) es a -> ViewMachine sN inp vs es a -> ViewMachine sN inp vs es a Source #

refJoin :: forall v inp (vs :: [Type]) (es :: Peano) a. LetName v -> ViewMachine sN inp (v ': vs) es a Source #

Inputable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

loadInput :: forall inp (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp vs es a -> ViewMachine sN inp (Cursor inp ': vs) es a Source #

pushInput :: forall inp (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp (Cursor inp ': vs) es a -> ViewMachine sN inp vs es a Source #

Failable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

fail :: forall inp (vs :: [Type]) (es :: Peano) a. [ErrorItem (InputToken inp)] -> ViewMachine sN inp vs ('Succ es) a Source #

popFail :: forall inp (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp vs es a -> ViewMachine sN inp vs ('Succ es) a Source #

catchFail :: forall inp (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp vs ('Succ es) a -> ViewMachine sN inp (Cursor inp ': vs) es a -> ViewMachine sN inp vs es a Source #

Branchable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

caseI :: forall inp x (vs :: [Type]) (es :: Peano) r y. ViewMachine sN inp (x ': vs) es r -> ViewMachine sN inp (y ': vs) es r -> ViewMachine sN inp (Either x y ': vs) es r Source #

choices :: forall v inp (vs :: [Type]) (es :: Peano) a. [TermInstr (v -> Bool)] -> [ViewMachine sN inp vs es a] -> ViewMachine sN inp vs es a -> ViewMachine sN inp (v ': vs) es a Source #

ifI :: forall inp (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp vs es a -> ViewMachine sN inp vs es a -> ViewMachine sN inp (Bool ': vs) es a Source #

ShowLetName sN Name => Routinable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

subroutine :: forall v inp (vs :: [Type]) (es :: Peano) a. LetName v -> ViewMachine sN inp '[] ('Succ 'Zero) v -> ViewMachine sN inp vs ('Succ es) a -> ViewMachine sN inp vs ('Succ es) a Source #

call :: forall v inp (vs :: [Type]) (es :: Peano) a. LetName v -> ViewMachine sN inp (v ': vs) ('Succ es) a -> ViewMachine sN inp vs ('Succ es) a Source #

ret :: forall inp a (es :: Peano). ViewMachine sN inp '[a] es a Source #

jump :: forall a inp (es :: Peano). LetName a -> ViewMachine sN inp '[] ('Succ es) a Source #

Stackable (ViewMachine sN) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

push :: forall v inp (vs :: [Type]) (es :: Peano) a. TermInstr v -> ViewMachine sN inp (v ': vs) es a -> ViewMachine sN inp vs es a Source #

pop :: forall inp (vs :: [Type]) (es :: Peano) a v. ViewMachine sN inp vs es a -> ViewMachine sN inp (v ': vs) es a Source #

liftI2 :: forall x y z inp (vs :: [Type]) (es :: Peano) a. TermInstr (x -> y -> z) -> ViewMachine sN inp (z ': vs) es a -> ViewMachine sN inp (y ': (x ': vs)) es a Source #

swap :: forall inp x y (vs :: [Type]) (es :: Peano) a. ViewMachine sN inp (x ': (y ': vs)) es a -> ViewMachine sN inp (y ': (x ': vs)) es a Source #

mapI :: forall x y inp (vs :: [Type]) (es :: Peano) a. TermInstr (x -> y) -> ViewMachine sN inp (y ': vs) es a -> ViewMachine sN inp (x ': vs) es a Source #

appI :: forall inp y (vs :: [Type]) (es :: Peano) a x. ViewMachine sN inp (y ': vs) es a -> ViewMachine sN inp (x ': ((x -> y) ': vs)) es a Source #

Show (ViewMachine sN inp vs es a) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

showsPrec :: Int -> ViewMachine sN inp vs es a -> ShowS #

show :: ViewMachine sN inp vs es a -> String #

showList :: [ViewMachine sN inp vs es a] -> ShowS #

IsString (ViewMachine sN inp vs es a) Source # 
Instance details

Defined in Symantic.Parser.Machine.View

Methods

fromString :: String -> ViewMachine sN inp vs es a #

viewMachine :: ViewMachine sN inp vs es a -> ViewMachine sN inp vs es a Source #

viewInstrCmd :: String -> Forest String -> Tree String Source #

Helper to view a command.

viewInstrArg :: String -> Forest String -> Tree String Source #

Helper to view an argument.