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

Symantic.Parser.Machine.Dump

Synopsis

Type DumpInstr

newtype DumpInstr inp (vs :: [Type]) (es :: Peano) a Source #

Constructors

DumpInstr 

Instances

Instances details
Joinable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

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

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

Routinable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

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

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

ret :: forall inp ret (es :: Peano). DumpInstr inp '[ret] es ret Source #

jump :: forall ret inp (es :: Peano). LetName ret -> DumpInstr inp '[] ('Succ es) ret Source #

Inputable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

loadInput :: forall inp (vs :: [Type]) (es :: Peano) r. DumpInstr inp vs es r -> DumpInstr inp (Cursor inp ': vs) es r Source #

pushInput :: forall inp (vs :: [Type]) (es :: Peano) ret. DumpInstr inp (Cursor inp ': vs) es ret -> DumpInstr inp vs es ret Source #

Failable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

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

popFail :: forall inp (vs :: [Type]) (es :: Peano) ret. DumpInstr inp vs es ret -> DumpInstr inp vs ('Succ es) ret Source #

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

Branchable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

case_ :: forall inp x (vs :: [Type]) (n :: Peano) r y. DumpInstr inp (x ': vs) n r -> DumpInstr inp (y ': vs) n r -> DumpInstr inp (Either x y ': vs) n r Source #

choices :: forall v inp (vs :: [Type]) (es :: Peano) ret. [InstrPure (v -> Bool)] -> [DumpInstr inp vs es ret] -> DumpInstr inp vs es ret -> DumpInstr inp (v ': vs) es ret Source #

Stackable DumpInstr Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

push :: forall v inp (vs :: [Type]) (n :: Peano) ret. InstrPure v -> DumpInstr inp (v ': vs) n ret -> DumpInstr inp vs n ret Source #

pop :: forall inp (vs :: [Type]) (n :: Peano) ret v. DumpInstr inp vs n ret -> DumpInstr inp (v ': vs) n ret Source #

liftI2 :: forall x y z inp (vs :: [Type]) (es :: Peano) ret. InstrPure (x -> y -> z) -> DumpInstr inp (z ': vs) es ret -> DumpInstr inp (y ': (x ': vs)) es ret Source #

swap :: forall inp x y (vs :: [Type]) (n :: Peano) r. DumpInstr inp (x ': (y ': vs)) n r -> DumpInstr inp (y ': (x ': vs)) n r Source #

Readable DumpInstr inp Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

read :: forall inp0 (vs :: [Type]) (es :: Peano) ret. inp ~ InputToken inp0 => [ErrorItem inp] -> InstrPure (inp -> Bool) -> DumpInstr inp0 (inp ': vs) ('Succ es) ret -> DumpInstr inp0 vs ('Succ es) ret Source #

Show (DumpInstr inp vs es a) Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

showsPrec :: Int -> DumpInstr inp vs es a -> ShowS #

show :: DumpInstr inp vs es a -> String #

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

IsString (DumpInstr inp vs es a) Source # 
Instance details

Defined in Symantic.Parser.Machine.Dump

Methods

fromString :: String -> DumpInstr inp vs es a #

dumpInstr :: DumpInstr inp vs es a -> DumpInstr inp vs es a Source #

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

Helper to dump a command.

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

Helper to dump an argument.